diff options
Diffstat (limited to 'results/classifier/accel-gemma3:12b/vmm/1061778')
| -rw-r--r-- | results/classifier/accel-gemma3:12b/vmm/1061778 | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/results/classifier/accel-gemma3:12b/vmm/1061778 b/results/classifier/accel-gemma3:12b/vmm/1061778 new file mode 100644 index 000000000..4faec5e58 --- /dev/null +++ b/results/classifier/accel-gemma3:12b/vmm/1061778 @@ -0,0 +1,10 @@ + +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. \ No newline at end of file |