Changes by STINNER Victor victor.stin...@gmail.com:
--
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
___
STINNER Victor added the comment:
I updated the list of modified functions in the PEP 475.
Except of the issue #23719, all other issues related to the PEP 475 have been
fixed. It's time to close this meta issue.
--
dependencies: -PEP 475: port test_eintr to Windows
resolution: -
Arfrever Frehtes Taifersar Arahesis added the comment:
New changeset 66e4ef9a7467 by Victor Stinner in branch 'default':
Issue #23648: Complete the list of modified functions for the PEP 475
https://hg.python.org/cpython/rev/66e4ef9a7467
+* special cases: :func:`os.close` and
STINNER Victor added the comment:
But os.dup2 is not mentioned in PEP 475.
Currently, What's in Python 3.5 is more complete than the PEP 475. Another
example, the PEP doesn't mention signal.sigtimedwait(). The PEP should be
updated when the implementation will be finished.
--
Roundup Robot added the comment:
New changeset 66e4ef9a7467 by Victor Stinner in branch 'default':
Issue #23648: Complete the list of modified functions for the PEP 475
https://hg.python.org/cpython/rev/66e4ef9a7467
--
___
Python tracker
STINNER Victor added the comment:
New issue #23851: _posixsubprocess retries close() on EINTR.
--
dependencies: +PEP 475: _posixsubprocess retries close() on EINTR
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
STINNER Victor added the comment:
New issue #23853: handle EINTR in the ssl module.
--
dependencies: +PEP 475: handle EINTR in the ssl module
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
STINNER Victor added the comment:
New issue #23836: Enhance faulthandler to handle better reentrant calls.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
Changes by STINNER Victor victor.stin...@gmail.com:
--
dependencies: +PEP 475: Enhance faulthandler to handle better reentrant calls
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
STINNER Victor added the comment:
inject_signals.patch: Quick-and-dirty patch to send signals (SIGALRM) every
milliseconds when running unit tests.
On Linux, results are very good. Only multiprocessing fails because of the
issue #23618 (socket connect) which has a pending patch. I hope that
Roundup Robot added the comment:
New changeset b7c0137cccbe by Victor Stinner in branch 'default':
Issue #23648: Document the PEP 475 in the Porting to Python 3.5 section and
https://hg.python.org/cpython/rev/b7c0137cccbe
--
nosy: +python-dev
___
STINNER Victor added the comment:
Charles-François Natali added the comment:
You have to mount the share with the eintr option.
Oh, I didn't know this option. Unlikely, it looks like the option was
deprecated something like 7 years ago, in Linux kernel 2.6.25.
Related commits:
Charles-François Natali added the comment:
fstat_not_eintr.py: run this script from a NFS share and unplug the network
cable, wait, replug. Spoiler: fstat() hangs until the network is back, CTRL+c
or setitimer() don't interrupt it.
You have to mount the share with the eintr option.
STINNER Victor added the comment:
fstat_not_eintr.py: run this script from a NFS share and unplug the network
cable, wait, replug. Spoiler: fstat() hangs until the network is back, CTRL+c
or setitimer() don't interrupt it.
By the way, it looks like the itimer is interrupted during fstat!
STINNER Victor added the comment:
Well, all the syscalls which can blocki can fail with EINTR, so all
I:O related one.
This is also what I expect, but how do you explain that I'm unable to see
os.stat() failing with EINTR? I'm testing on ext4 file system. May it occur
with other file
STINNER Victor added the comment:
pthread_* are false positive, they cannot fail with EINTR:
Pthreads function return values
Most pthreads functions return 0 on success, and an error number of
failure. Note that the pthreads functions do not set errno. For each of the
pthreads
STINNER Victor added the comment:
New issue #23719: port test_eintr to Windows.
--
dependencies: +PEP 475: port test_eintr to Windows
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
Charles-François Natali added the comment:
Well, all the syscalls which can blocki can fail with EINTR, so all
I:O related one.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
STINNER Victor added the comment:
unittest_setitimer.patch: hack unittest.TestCase.run() to inject signals every
1 ms, send the first signal in 100 ms. It should help to detect functions which
doesn't retry on EINTR.
--
keywords: +patch
Added file:
STINNER Victor added the comment:
New issue #23715: handle EINTR in the signal module.
--
dependencies: +PEP 475: handle EINTR in the signal module
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
STINNER Victor added the comment:
More issues:
- Issue #23707: os.urandom() doesn't handle EINTR correctly
- Issue #23708: Add _Py_read() and _Py_write() functions
- Issue #23709: Refactor ossaudiodev: use _Py_read and _Py_write with the
Py_buffer
--
dependencies: +PEP 475: Add
STINNER Victor added the comment:
signal.sigwaitinfo() raises InterruptedError if the wait was interrupted by a
signal handler (this handler was for a signal other than one of those in set).
IMO we should also retry sigwaitinfo() if it fails with EINTR.
--
STINNER Victor added the comment:
I searched for EINTR in all manual pages of my Fedora 21. I found a long list
of functions (filename of manual pages). But I didn't check each manual page.
There are false positive. For example, stat is listed, but in fact EINTR is
only mentionned in
STINNER Victor added the comment:
I found a way to get a list of functions which can fail with EINTR: search for
TEMP_FAILURE_RETRY in the source code of the glibc. TEMP_FAILURE_RETRY:
https://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html#Interrupted-Primitives
STINNER Victor added the comment:
stat manual page of SCO documentation says that stat() can fail with EINTR, but
I don't see this error in latest Linux manual page. I tested manually, and I
failed to see stat() failing with InterruptedError.
http://uw714doc.sco.com/en/man/html.2/stat.2.html
STINNER Victor added the comment:
test_eintr.py: program to check if a Python function can fail with
InterruptedError. Modify func() to test a function. (The program checks
select.select(), currently it fails with InterruptedError.)
--
Added file:
STINNER Victor added the comment:
In msg196555, Charles-François Natali wrote:
From a cursory look, the main files affected would be:
Modules/fcntlmodule.c
Modules/ossaudiodev.c
Modules/posixmodule.c
Modules/selectmodule.c
Modules/selectmodule.c
Modules/signalmodule.c
Modules/socketmodule.c
Changes by STINNER Victor victor.stin...@gmail.com:
--
dependencies: +PEP 475 - EINTR handling, PEP 475: handle EINTR in the select
and selectors module, PEP 475: handle EINTR in the socket module, PEP 475:
handle EINTR in the time module, retry sleep()
New submission from STINNER Victor:
I created this issue to group all issues related to the implementation of the
PEP 475 Retry system calls failing with EINTR.
https://www.python.org/dev/peps/pep-0475/
- Issue #23646: the time module, retry sleep()
- Issue #23618: the socket module
- Issue
Changes by STINNER Victor victor.stin...@gmail.com:
--
nosy: +neologix
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23648
___
___
30 matches
Mail list logo