diff options
Diffstat (limited to 'results/classifier/111/review/1061778')
| -rw-r--r-- | results/classifier/111/review/1061778 | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/results/classifier/111/review/1061778 b/results/classifier/111/review/1061778 new file mode 100644 index 00000000..c87dda76 --- /dev/null +++ b/results/classifier/111/review/1061778 @@ -0,0 +1,43 @@ +semantic: 0.159 +network: 0.142 +device: 0.088 +other: 0.080 +socket: 0.078 +vnc: 0.076 +graphic: 0.074 +performance: 0.062 +PID: 0.052 +permissions: 0.050 +debug: 0.049 +files: 0.041 +boot: 0.034 +KVM: 0.016 +debug: 0.548 +PID: 0.090 +files: 0.087 +other: 0.061 +performance: 0.041 +network: 0.037 +boot: 0.032 +device: 0.032 +semantic: 0.017 +socket: 0.016 +graphic: 0.013 +vnc: 0.010 +permissions: 0.010 +KVM: 0.007 + +signal mask not reset on exec + +Seen in qemu-1.0 under 12.04, but AFAICT from current git it hasn't changed. + +./main-loop.c:qemu_signal_init blocks SIGALRM so it can be handled via signalfd. + +./net/tap.c:launch_script does not reset the signal mask before the execv() call, and signal masks are inherited. So the script is run with SIGALRM blocked (as can be seen in /proc/$$/status, "SigBlk: 0000000000002000"). One reasonable example of where this bites is an interface up script that calls ping with a timeout to give things a chance to settle down before continuing, but abort if this doesn't happen within a reasonable time). Since ping uses SIGALRM for the timeout, this now never terminates. + +qemu-0.14 didn't block SIGALRM, so such scripts worked fine there. + +Triaging old bug tickets... can you still reproduce this issue with the latest version of QEMU? Or could we close this ticket nowadays? + +[Expired for QEMU because there has been no activity for 60 days.] + |
