public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Mercurial not returning with 20110601 snapshot
@ 2011-06-02 10:44 Chris Sutcliffe
  2011-06-02 12:28 ` Christopher Faylor
  0 siblings, 1 reply; 10+ messages in thread
From: Chris Sutcliffe @ 2011-06-02 10:44 UTC (permalink / raw)
  To: The Cygwin Mailing List

Testing the 20110601 snapshot I've run in to an issue where Mercurial
(specifically python) will not return to the command line when the
command completes:

csutclif@bmotec3017201lt:[/usr/src/emerge/default] $ uname -a
CYGWIN_NT-5.1 BMOTEC3017201LT 1.7.10s(0.248/5/3) 20110601 01:49:05 i686 Cygwin
csutclif@bmotec3017201lt:[/usr/src/emerge/default] $ hg pull -u
running ssh ir0nh34d@emerge.hg.sourceforge.net "hg -R
hgroot/emerge/emerge serve --stdio"
pulling from ssh://ir0nh34d@emerge.hg.sourceforge.net/hgroot/emerge/emerge
searching for changes
no changes found

I have to Ctrl-C to get back to the prompt, doing a ps -efa in a
second window I see that the python process is still active (before
the Ctrl-C):

csutclif@bmotec3017201lt:[~] $ ps -efa
     UID     PID    PPID  TTY        STIME COMMAND
csutclif    1840       1 ?        06:30:38 /usr/bin/mintty
csutclif    5984    1840 tty0     06:30:38 /usr/bin/mksh
csutclif    4172    1840 ?        06:38:06 /usr/bin/mintty
csutclif    3884    4172 tty1     06:38:07 /usr/bin/mksh
csutclif    5304    5984 tty0     06:41:19 /usr/bin/python
csutclif    5620    5304 tty0     06:41:19 /usr/bin/ssh
csutclif    4952    3884 tty1     06:42:13 /usr/bin/ps

I'm guessing this is related to the recent changes to pipe handling?

Cheers,

Chris

-- 
Chris Sutcliffe
http://emergedesktop.org
http://www.google.com/profiles/ir0nh34d

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 10:44 Mercurial not returning with 20110601 snapshot Chris Sutcliffe
@ 2011-06-02 12:28 ` Christopher Faylor
  2011-06-02 13:06   ` Chris Sutcliffe
  0 siblings, 1 reply; 10+ messages in thread
From: Christopher Faylor @ 2011-06-02 12:28 UTC (permalink / raw)
  To: cygwin

On Thu, Jun 02, 2011 at 06:43:40AM -0400, Chris Sutcliffe wrote:
>Testing the 20110601 snapshot I've run in to an issue where Mercurial
>(specifically python) will not return to the command line when the
>command completes:
>
>csutclif@bmotec3017201lt:[/usr/src/emerge/default] $ uname -a
>CYGWIN_NT-5.1 BMOTEC3017201LT 1.7.10s(0.248/5/3) 20110601 01:49:05 i686 Cygwin
>csutclif@bmotec3017201lt:[/usr/src/emerge/default] $ hg pull -u
>running ssh ir0nh34d@emerge.hg.sourceforge.net "hg -R
>hgroot/emerge/emerge serve --stdio"
>pulling from ssh://ir0nh34d@emerge.hg.sourceforge.net/hgroot/emerge/emerge
>searching for changes
>no changes found
>
>I have to Ctrl-C to get back to the prompt, doing a ps -efa in a
>second window I see that the python process is still active (before
>the Ctrl-C):
>
>csutclif@bmotec3017201lt:[~] $ ps -efa
>     UID     PID    PPID  TTY        STIME COMMAND
>csutclif    1840       1 ?        06:30:38 /usr/bin/mintty
>csutclif    5984    1840 tty0     06:30:38 /usr/bin/mksh
>csutclif    4172    1840 ?        06:38:06 /usr/bin/mintty
>csutclif    3884    4172 tty1     06:38:07 /usr/bin/mksh
>csutclif    5304    5984 tty0     06:41:19 /usr/bin/python
>csutclif    5620    5304 tty0     06:41:19 /usr/bin/ssh
>csutclif    4952    3884 tty1     06:42:13 /usr/bin/ps
>
>I'm guessing this is related to the recent changes to pipe handling?

Like other guesses about this: not necessarily.

Could you provide the actual steps needed to duplicate the problem,
assuming that anyone doing testing will not be familiar with mercurial?

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 12:28 ` Christopher Faylor
@ 2011-06-02 13:06   ` Chris Sutcliffe
  2011-06-02 13:34     ` Ryan Johnson
  2011-06-04  1:14     ` Christopher Faylor
  0 siblings, 2 replies; 10+ messages in thread
From: Chris Sutcliffe @ 2011-06-02 13:06 UTC (permalink / raw)
  To: cygwin

On 2 June 2011 08:27, Christopher Faylor wrote:
> On Thu, Jun 02, 2011 at 06:43:40AM -0400, Chris Sutcliffe wrote:
>>Testing the 20110601 snapshot I've run in to an issue where Mercurial
>>(specifically python) will not return to the command line when the
>>command completes:
>>
>>I'm guessing this is related to the recent changes to pipe handling?
>
> Like other guesses about this: not necessarily.

Fair enough, I should know better than to assume.

> Could you provide the actual steps needed to duplicate the problem,
> assuming that anyone doing testing will not be familiar with mercurial?

It seems to be an issue with using mercurial over ssh versus mercurial
over http.  For example, cloning the Emerge Desktop repository over
http (read only) works fine:

hg clone http://emerge.hg.sourceforge.net:8000/hgroot/emerge/emerge

However, when I clone over ssh (for read/write) using my public key:

hg clone ssh://ir0nh34d@emerge.hg.sourceforge.net/hgroot/emerge/emerge

The command appears to hang after the operation completes.

Unfortunately I don't know of an anonymous mercurial repository that
you can clone over ssh to recreate the issue.  Is there anything I can
provide in terms of an strace or anything?

Thank you,

Chris

-- 
Chris Sutcliffe
http://emergedesktop.org
http://www.google.com/profiles/ir0nh34d

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 13:06   ` Chris Sutcliffe
@ 2011-06-02 13:34     ` Ryan Johnson
  2011-06-02 13:46       ` marco atzeri
  2011-06-04  1:14     ` Christopher Faylor
  1 sibling, 1 reply; 10+ messages in thread
From: Ryan Johnson @ 2011-06-02 13:34 UTC (permalink / raw)
  To: cygwin

On 02/06/2011 9:05 AM, Chris Sutcliffe wrote:
> On 2 June 2011 08:27, Christopher Faylor wrote:
>> Could you provide the actual steps needed to duplicate the problem,
>> assuming that anyone doing testing will not be familiar with mercurial?
> It seems to be an issue with using mercurial over ssh versus mercurial
> over http.  For example, cloning the Emerge Desktop repository over
> http (read only) works fine:
>
> hg clone http://emerge.hg.sourceforge.net:8000/hgroot/emerge/emerge
>
> However, when I clone over ssh (for read/write) using my public key:
>
> hg clone ssh://ir0nh34d@emerge.hg.sourceforge.net/hgroot/emerge/emerge
>
> The command appears to hang after the operation completes.
>
> Unfortunately I don't know of an anonymous mercurial repository that
> you can clone over ssh to recreate the issue.
Assuming cygwin sshd is running locally, couldn't you just create an 
empty repo and then try to ssh-clone it?

mkdir ~/test-repo
cd ~/test-repo
hg init
hg clone ssh://localhost/test-repo tr2

Ryan


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 13:34     ` Ryan Johnson
@ 2011-06-02 13:46       ` marco atzeri
  2011-06-02 15:48         ` Chris Sutcliffe
  0 siblings, 1 reply; 10+ messages in thread
From: marco atzeri @ 2011-06-02 13:46 UTC (permalink / raw)
  To: cygwin

On Thu, Jun 2, 2011 at 3:34 PM, Ryan Johnson  wrote:
> On 02/06/2011 9:05 AM, Chris Sutcliffe wrote:
>>
>> On 2 June 2011 08:27, Christopher Faylor wrote:
>>>
>>> Could you provide the actual steps needed to duplicate the problem,
>>> assuming that anyone doing testing will not be familiar with mercurial?
>>
>> It seems to be an issue with using mercurial over ssh versus mercurial
>> over http.  For example, cloning the Emerge Desktop repository over
>> http (read only) works fine:
>>
>> hg clone http://emerge.hg.sourceforge.net:8000/hgroot/emerge/emerge
>>
>> However, when I clone over ssh (for read/write) using my public key:
>>
>> hg clone ssh://ir0nh34d@emerge.hg.sourceforge.net/hgroot/emerge/emerge
>>
>> The command appears to hang after the operation completes.
>>
>> Unfortunately I don't know of an anonymous mercurial repository that
>> you can clone over ssh to recreate the issue.
>
> Assuming cygwin sshd is running locally, couldn't you just create an empty
> repo and then try to ssh-clone it?
>
> mkdir ~/test-repo
> cd ~/test-repo
> hg init
> hg clone ssh://localhost/test-repo tr2
>
> Ryan
>

in that case you can also test with rsync through ssh to check if it
is a more general ssh issue and
it is not related to mercurial.

Marco

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 13:46       ` marco atzeri
@ 2011-06-02 15:48         ` Chris Sutcliffe
  2011-06-03  2:25           ` Christopher Faylor
  0 siblings, 1 reply; 10+ messages in thread
From: Chris Sutcliffe @ 2011-06-02 15:48 UTC (permalink / raw)
  To: cygwin

On 2 June 2011 09:45, marco atzeri wrote:
> On Thu, Jun 2, 2011 at 3:34 PM, Ryan Johnson  wrote:
>> Assuming cygwin sshd is running locally, couldn't you just create an empty
>> repo and then try to ssh-clone it?
>>
>> mkdir ~/test-repo
>> cd ~/test-repo
>> hg init
>> hg clone ssh://localhost/test-repo tr2

I tried this and I see the behaviour I described.  Adding '--debug' I see:

csutclif@bmotec3017201lt:[~/test-repo] $ hg --debug clone
ssh://localhost/test-repo tr2
running ssh localhost "hg -R test-repo serve --stdio"
sending hello command
sending between command
csutclif@localhost's password:
remote: 94
remote: capabilities: lookup changegroupsubset branchmap pushkey
stream unbundle=HG10GZ,HG10BZ,HG10UN
remote: 1
sending heads command
no changes found
checking for updated bookmarks
sending listkeys command
updating to branch default
resolving manifests
 overwrite False partial False
 ancestor 000000000000 local 000000000000+ remote 000000000000
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

It hangs at the last line until I Ctrl-C.

> in that case you can also test with rsync through ssh to check if it
> is a more general ssh issue and
> it is not related to mercurial.

Using rync over ssh worked fine.

Chris

-- 
Chris Sutcliffe
http://emergedesktop.org
http://www.google.com/profiles/ir0nh34d

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 15:48         ` Chris Sutcliffe
@ 2011-06-03  2:25           ` Christopher Faylor
  2011-06-03  3:32             ` Ryan Johnson
  0 siblings, 1 reply; 10+ messages in thread
From: Christopher Faylor @ 2011-06-03  2:25 UTC (permalink / raw)
  To: cygwin

On Thu, Jun 02, 2011 at 11:47:47AM -0400, Chris Sutcliffe wrote:
>On 2 June 2011 09:45, marco atzeri wrote:
>> On Thu, Jun 2, 2011 at 3:34 PM, Ryan Johnson ?wrote:
>>> Assuming cygwin sshd is running locally, couldn't you just create an empty
>>> repo and then try to ssh-clone it?
>>>
>>> mkdir ~/test-repo
>>> cd ~/test-repo
>>> hg init
>>> hg clone ssh://localhost/test-repo tr2
>
>I tried this and I see the behaviour I described.  Adding '--debug' I see:
>
>csutclif@bmotec3017201lt:[~/test-repo] $ hg --debug clone
>ssh://localhost/test-repo tr2
>running ssh localhost "hg -R test-repo serve --stdio"
>sending hello command
>sending between command
>csutclif@localhost's password:
>remote: 94
>remote: capabilities: lookup changegroupsubset branchmap pushkey
>stream unbundle=HG10GZ,HG10BZ,HG10UN
>remote: 1
>sending heads command
>no changes found
>checking for updated bookmarks
>sending listkeys command
>updating to branch default
>resolving manifests
> overwrite False partial False
> ancestor 000000000000 local 000000000000+ remote 000000000000
>0 files updated, 0 files merged, 0 files removed, 0 files unresolved
>
>It hangs at the last line until I Ctrl-C.

Thanks for the test case.  I can duplicate the problem but, so far, I'm
stumped.  python seems to be hanging in ExitProcess.

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-03  2:25           ` Christopher Faylor
@ 2011-06-03  3:32             ` Ryan Johnson
  0 siblings, 0 replies; 10+ messages in thread
From: Ryan Johnson @ 2011-06-03  3:32 UTC (permalink / raw)
  To: cygwin

On 02/06/2011 10:24 PM, Christopher Faylor wrote:
> On Thu, Jun 02, 2011 at 11:47:47AM -0400, Chris Sutcliffe wrote:
>> On 2 June 2011 09:45, marco atzeri wrote:
>>> On Thu, Jun 2, 2011 at 3:34 PM, Ryan Johnson ?wrote:
>>>> Assuming cygwin sshd is running locally, couldn't you just create an empty
>>>> repo and then try to ssh-clone it?
>>>>
>>>> mkdir ~/test-repo
>>>> cd ~/test-repo
>>>> hg init
>>>> hg clone ssh://localhost/test-repo tr2
>> I tried this and I see the behaviour I described.  Adding '--debug' I see:
>>
>> csutclif@bmotec3017201lt:[~/test-repo] $ hg --debug clone
>> ssh://localhost/test-repo tr2
>> running ssh localhost "hg -R test-repo serve --stdio"
>> sending hello command
>> sending between command
>> csutclif@localhost's password:
>> remote: 94
>> remote: capabilities: lookup changegroupsubset branchmap pushkey
>> stream unbundle=HG10GZ,HG10BZ,HG10UN
>> remote: 1
>> sending heads command
>> no changes found
>> checking for updated bookmarks
>> sending listkeys command
>> updating to branch default
>> resolving manifests
>> overwrite False partial False
>> ancestor 000000000000 local 000000000000+ remote 000000000000
>> 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
>>
>> It hangs at the last line until I Ctrl-C.
> Thanks for the test case.  I can duplicate the problem but, so far, I'm
> stumped.  python seems to be hanging in ExitProcess.

It seems that python isn't the problem. I downloaded the snapshot and 
tried the test case in strace, and just before hanging it reported:
>    24 26366182 [main] python 10128 pinfo::exit: Calling ExitProcess n 
> 0x0, exitcode 0x0

However, hitting ^C caused more output. Additional, similar pairs appear 
every minute or two, independent of further ^C (I couldn't actually get 
strace to exit until I killed ssh manually):
> 44088209 67106467 [unknown (0x25C4)] ssh 10076 _cygtls::remove: wait 0x0
>   101 67106568 [unknown (0x25C4)] ssh 10076 _cygtls::remove: removed 
> 0x2EACE64 element 2

Meanwhile, ps confirms zero python processes and one ssh.

Ryan



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-02 13:06   ` Chris Sutcliffe
  2011-06-02 13:34     ` Ryan Johnson
@ 2011-06-04  1:14     ` Christopher Faylor
  2011-06-04  1:57       ` Chris Sutcliffe
  1 sibling, 1 reply; 10+ messages in thread
From: Christopher Faylor @ 2011-06-04  1:14 UTC (permalink / raw)
  To: cygwin

On Thu, Jun 02, 2011 at 09:05:57AM -0400, Chris Sutcliffe wrote:
>On 2 June 2011 08:27, Christopher Faylor wrote:
>> On Thu, Jun 02, 2011 at 06:43:40AM -0400, Chris Sutcliffe wrote:
>>>Testing the 20110601 snapshot I've run in to an issue where Mercurial
>>>(specifically python) will not return to the command line when the
>>>command completes:
>>>
>>>I'm guessing this is related to the recent changes to pipe handling?
>>
>> Like other guesses about this: not necessarily.
>
>Fair enough, I should know better than to assume.

Or, maybe I should just listen to your guesses.  You were right.  I made
a change to the pipe code to speed up select and forgot to detect EOF
conditions.  It was a pretty glaring oversight on my part.  This follows
on the heels of my completely screwing up non-blocking reads on pipes so
my track record hasn't been great in this area.

The problem was easy to duplicate:

echo hello | ssh someplace cat

There were also several other problems with tty/console handling.  My
attempt to merge some of the console and pty handling has proved to be
pretty tricky to get right.  The console problems were tickled by strace
so they were harder than usual to track down.

Anyway, thanks for noticing the problem.  It should be fixed in the
snapshot that is being generated now.

http://cygwin.com/snapshots/

Only the snapshot > 2011-06-01 will have the fix.

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Mercurial not returning with 20110601 snapshot
  2011-06-04  1:14     ` Christopher Faylor
@ 2011-06-04  1:57       ` Chris Sutcliffe
  0 siblings, 0 replies; 10+ messages in thread
From: Chris Sutcliffe @ 2011-06-04  1:57 UTC (permalink / raw)
  To: cygwin

On 3 June 2011 21:13, Christopher Faylor wrote:
> Anyway, thanks for noticing the problem.  It should be fixed in the
> snapshot that is being generated now.
>
> http://cygwin.com/snapshots/
>
> Only the snapshot > 2011-06-01 will have the fix.

I can confirm that the 2011-06-04 snapshot fixes the issue.

Thank you for looking in to this!

Chris

-- 
Chris Sutcliffe
http://emergedesktop.org
http://www.google.com/profiles/ir0nh34d

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-06-04  1:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-02 10:44 Mercurial not returning with 20110601 snapshot Chris Sutcliffe
2011-06-02 12:28 ` Christopher Faylor
2011-06-02 13:06   ` Chris Sutcliffe
2011-06-02 13:34     ` Ryan Johnson
2011-06-02 13:46       ` marco atzeri
2011-06-02 15:48         ` Chris Sutcliffe
2011-06-03  2:25           ` Christopher Faylor
2011-06-03  3:32             ` Ryan Johnson
2011-06-04  1:14     ` Christopher Faylor
2011-06-04  1:57       ` Chris Sutcliffe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).