Message239077
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(). |
|
Date |
User |
Action |
Args |
2015-03-23 21:51:24 | vstinner | set | recipients:
+ vstinner, neologix |
2015-03-23 21:51:24 | vstinner | set | messageid: <1427147484.93.0.501180467581.issue23648@psf.upfronthosting.co.za> |
2015-03-23 21:51:24 | vstinner | link | issue23648 messages |
2015-03-23 21:51:24 | vstinner | create | |
|