git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Deadlock during remote update

From
Duy Nguyen <pclouds@gmail.com>
Date
Feb 27, 2015, 11:27 UTC
Message-ID
<CACsJy8AG9ZdhZj_pAb3sZPntBt+GPLj06dXDAV=w+5HyL6D+0Q@mail.gmail.com>
In-Reply-To
<311995D1237EC0498D6D8FAFA73D6F458F1B67@G9W0762.americas.hpqcorp.net>
On Fri, Feb 27, 2015 at 6:03 PM, Heald, Mike <mike.heald@hp.com> wrote:
Show 18 quoted lines
> Hi,
>
> We have a cron job that runs remote update on a number of repositories. Sometimes, the processes deadlock and we have to go -TERM them. Here's a breakdown of what state the processes end up in when the deadlock happens, from one of our production systems yesterday:
>
> 31629 git --git-dir=/var/lib/jeepyb/openstack/nova/.git --work-tree=/var/lib/jeepyb/openstack/nova remote update --prune
>     wait4'ing for 31630
> 31630 git fetch --prune --multiple --all
>     wait4'ing for 31637
> 31637 git fetch --append --prune upstream
>     waiting for read from pipe:[170381707] (fd 25)
> 31638 git-remote-https upstream https://git.openstack.org/openstack/nova
>     has pipe:[170381707] (fd 1), waiting for read from pipe:[170384472]
> 31642 git fetch-pack --stateless-rpc --lock-pack --include-tag --thin --no-progress https://git.openstack.org/openstack/nova/  efs/heads/master
>     has pipe:[170384472] (fd 1), waiting for read from pipe:[170384471] (fd 0) which fd 7 on 31638
>
> 31638 and 31642 are both waiting to read from a pipe that the other has, and isn't writing to.
>
> This is git version 1.7.9.5, OS is ubuntu precise.

There's this commit 2a45520 (remote-curl: always parse incoming refs - 2013-02-20) that fixes a deadlock between remote-http(s) and fetch-pack. I'm not sure if it's the same problem. Jeff knows more about this. The fix is available since v1.8.3

-- 
Duy
Previous: Heald, MikeNext: Jeff King
Message 2 of 3 in “Deadlock during remote update”
  1. Heald, MikeFeb 27, 2015
  2. Duy NguyenFeb 27, 2015
  3. Jeff KingFeb 27, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.