SmartSSHClientMedium.__del__ blocks forever, because of socket leaked into unrelated child process
Bug #696285 reported by
Max Bowsher
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Low
|
Max Bowsher |
Bug Description
When executing 'bzr multi-pull' over a tree containing branches that pull from a mix of bzr+ssh:// and bzr-svn svn+ssh:// URLs, the bzr process hangs after completing all pulls.
Control-C-ing it prints:
Exception KeyboardInterrupt: KeyboardInterrupt() in <bound method SmartSSHClientM
(in which "b" is the name of the host being pulled from over bzr+ssh)
Using bzr.dev tip, bzr-svn 1.0 tip.
Related branches
lp:~maxb/bzr/socketpair-cloexec
- Martin Packman (community): Approve
-
Diff: 45 lines (+17/-0)3 files modifiedbzrlib/osutils.py (+13/-0)
bzrlib/transport/ssh.py (+1/-0)
doc/en/release-notes/bzr-2.3.txt (+3/-0)
Changed in bzr: | |
assignee: | nobody → Max Bowsher (maxb) |
importance: | Undecided → Low |
status: | New → In Progress |
Changed in bzr: | |
milestone: | none → 2.3b5 |
Changed in bzr: | |
status: | In Progress → Fix Released |
To post a comment you must log in.
The behaviour is ordering dependent, occurring only if a svn+ssh branch is pulled after a bzr+ssh one.
The hang is the result of a "ssh ... bzr serve ..." process not exiting even after its stdin/out socket is closed. This is happening because the socket for the bzr+ssh child has been leaked into the svn+ssh child, and is still open there.