The author investigated a bug in PanamaKVM, an experimental Java-based virtual machine monitor. When running Linux inside the VM, pressing Ctrl+C initially caused the entire virtual machine to shut down instead of terminating the guest process.
The issue stemmed from host terminal settings. The host's line discipline was configured to intercept the Ctrl+C character (0x03) and send a SIGINT signal to the foreground process group, which included the JVM itself. Disabling the -isig flag on the host terminal prevented the host from capturing the signal.
After fixing the host configuration, the Ctrl+C character reached the guest, but the sleep command still failed to terminate. The author traced the signal path through the virtual UART, KVM_IRQ_LINE ioctl, and the guest's TTY subsystem, confirming that the byte was successfully delivered to the guest kernel.
Further diagnostics revealed that the problem was not in the virtualization transport layer. Sending a SIGINT directly to the process group from within the guest also failed to stop the command. The author concluded that the issue was related to the process state, specifically signal blocking or ignoring, which can be verified via /proc/[pid]/status.




