firecracker-microvm / firecracker

Secure and fast microVMs for serverless computing.
http://firecracker-microvm.io
Apache License 2.0
25.1k stars 1.76k forks source link

test_signal_handler failing with rust 1.32 #870

Closed dhrgit closed 5 years ago

dhrgit commented 5 years ago

Unit tests are failing with rust 1.32. I.e. when issuing:

cargo test --package vmm -- --test-threads=1

The output is:

running 47 tests
test default_syscalls::x86_64::tests::test_advanced_seccomp ... ok
test default_syscalls::x86_64::tests::test_basic_seccomp ... ok
test device_manager::legacy::tests::test_debug_error ... ok
test device_manager::legacy::tests::test_register_legacy_devices ... ok
test device_manager::mmio::tests::register_device ... ok
test device_manager::mmio::tests::register_too_many_devices ... ok
test device_manager::mmio::tests::test_dummy_device ... ok
test device_manager::mmio::tests::test_error_messages ... ok
test device_manager::mmio::tests::test_get_address ... ok
test device_manager::mmio::tests::test_update_drive ... ok
test sigsys_handler::tests::test_signal_handler ... error: process didn't exit successfully: `/firecracker/build/cargo_target/x86_64-unknown-linux-musl/debug/deps/vmm-4dcf8e47b96134fd --test-threads=1` (signal: 31, SIGSYS: bad system call)

The problem only appears when running a single test thread (as we do in our integration tests). It looks like something is interfering with the signal handler.

dhrgit commented 5 years ago

Pausing this until #861 is merged, since that PR addresses the same code and causes all kinds of integration test failures with rust 1.32. Perhaps new syscalls need to get whitelisted. Further investigation is required.