[issue2325] inotify: hg pull -u frozen after updating

Greg Ward bugs at mercurial.selenic.com
Thu Aug 12 14:34:06 UTC 2010


New submission from Greg Ward <greg-hg at gerg.ca>:

If I run "hg pull -u" in an inotify-enabled repo where the server isn't
running, then hg pulls and updates as requested.  Then it hangs.

This does not happen all the time.  I suspect it happens whenever the server
is not running and inotify has to start it.  For example, if I rollback the
pull and repeat "hg pull -u", it works fine.  Repeat a couple of times,
still no problem.

But then if I rollback the pull, kill the inserve process, and rerun "hg
pull -u", it hangs again.

Here's how things look in the hanging state:

"""
$ ps -fwwC python
UID        PID  PPID  C STIME TTY          TIME CMD
gward     7499  3259  4 10:27 pts/4    00:00:03 python /home/gward/bin/hg
pull -u --debug
gward     7501  7499  5 10:27 ?        00:00:03 python /home/gward/bin/hg
inserve -R /home/gward/repos/sandbox --daemon-pipefds=/tmp/hg-service-YC3W9n

$ pstree -p 7499
python(7499)─┬─python(7501)
             └─ssh(7500)

"""

The parent (7499) is stuck waiting for ssh:

$ strace -tt -p 7499
Process 7499 attached - interrupt to quit
10:30:13.223423 read(7,  <unfinished ...>
[...wait 20 sec or so... then kill strace]

$ lsof -p 7499
[...]
python  7499 gward    7r  FIFO    0,6             28626 pipe

That pipe is to the ssh child.  Hmmmm!

If I kill the ssh child, process 7500, hg immediately exits.

----------
messages: 13319
nosy: gward, nicdumz
priority: bug
status: unread
title: inotify: hg pull -u frozen after updating

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue2325>
____________________________________________________


More information about the Mercurial-devel mailing list