Incorrect handling of EINTR in Bazaar

Andrew Bennetts andrew.bennetts at canonical.com
Fri Feb 19 01:32:28 GMT 2010


Martin (gzlist) wrote:
[...]
> The socket.error exception isn't a subclass of IOError (and doesn't
> have the errno attribute?) till Python 2.6 so until_no_eintr is
> useless on previous versions.

This part isn't quite right either: file.read in 2.4, 2.5 and 2.6 does raise
IOError on EINTR.  So simply removing or disabling until_no_eintr would
regress that case.

e.g. interrupt this blocking read with SIGUSR1:

python2.4 -c 'import os, signal, sys; print os.getpid(); signal.signal(signal.SIGUSR1, lambda *args: None); print repr(sys.stdin.read(3))'

-Andrew.



More information about the bazaar mailing list