diff options
Diffstat (limited to 'results/classifier/118/none/1061778')
| -rw-r--r-- | results/classifier/118/none/1061778 | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/results/classifier/118/none/1061778 b/results/classifier/118/none/1061778 new file mode 100644 index 00000000..60e1a038 --- /dev/null +++ b/results/classifier/118/none/1061778 @@ -0,0 +1,44 @@ +network: 0.738 +performance: 0.662 +socket: 0.655 +device: 0.564 +semantic: 0.535 +graphic: 0.481 +architecture: 0.403 +permissions: 0.401 +ppc: 0.396 +vnc: 0.374 +register: 0.366 +PID: 0.291 +peripherals: 0.289 +debug: 0.286 +mistranslation: 0.268 +risc-v: 0.235 +x86: 0.201 +i386: 0.201 +boot: 0.168 +hypervisor: 0.161 +arm: 0.148 +files: 0.137 +user-level: 0.133 +virtual: 0.123 +VMM: 0.121 +assembly: 0.117 +TCG: 0.115 +kernel: 0.098 +KVM: 0.043 + +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.] + |