SIGQUIT kills the child SSH process
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Martin Packman |
Bug Description
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've been seeing some odd operations when using bzr+ssh. I haven't been able to
figure out all of it, but something about doing way to much work for a simple
'bzr pull' into a bound branch.
Anyway, I tried using ^| (SIGQUIT) to debug what was going on. And it dropped
me into the debugger as expected. However, I also noticed:
/ [== ] Pull phase 0/2
^\Killed by signal 3.
** SIGQUIT received, entering debugger
** Type 'c' to continue or 'q' to stop the process
And at this point, the ssh connection has closed. If I use 'c' to continue, it
spins indefinitely expecting more data. Which is a bug in itself (if it isn't
getting any data, it should be failing with ConnectionClosed, not spinning
endlessly with 100% CPU.)
So 2 fixes:
a) SIGQUIT should be trapped for the child (I think we do this for SIGINT to
allow better cleanup.)
b) The smart server needs a bit better handling of when it gets a zero-length read.
affects bzr
importance medium
status triaged
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://
iD8DBQFHOhBXJde
7HuasNdR8PEhyHp
=gcv7
-----END PGP SIGNATURE-----
Related branches
- Andrew Bennetts: Approve
- John A Meinel: Needs Fixing
- Martin Pool: Approve
-
Diff: 43 lines (+9/-2)2 files modifiedNEWS (+4/-0)
bzrlib/transport/ssh.py (+5/-2)
Changed in bzr: | |
milestone: | none → 2.2.0b1 |
status: | Triaged → Fix Released |
This was related to bug 341535 which now has a patch, but this issue still exists.