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!
Extract of strace output:
---
<cable unplugged>
rt_sigreturn() = -1 EINTR (Interrupted system call)
select(0, NULL, NULL, NULL, {0, 100000}) = ? ERESTARTNOHAND (To be restarted if
no handler)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
rt_sigreturn() = -1 EINTR (Interrupted system call)
write(1, "fstat...\n", 9) = 9
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
<cable replugged>
--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
rt_sigreturn() = 0
---
The fstat() took 3 seconds, I expected 30 SIGALRM, but none occurred during
fstat().
----------
Added file: http://bugs.python.org/file38662/fstat_not_eintr.py
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue23648>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com