summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1905651
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/launchpad-without-comments/1905651')
-rw-r--r--results/scraper/launchpad-without-comments/190565152
1 files changed, 52 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1905651 b/results/scraper/launchpad-without-comments/1905651
new file mode 100644
index 00000000..53ce54c4
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/1905651
@@ -0,0 +1,52 @@
+Tests cannot call g_error
+
+I stumbled on this writing a new test, using tests/qtest/e1000e-test.c as a template.
+
+g_error() causes SIGTRAP, not SIGABRT, and thus the abort handler doesn't get run.
+This in turn means qemu is not killed, which hangs the test because the tap-driver.pl script hangs waiting for more input.
+There are a few tests that call g_error().
+
+The SIGABRT handler explicitly kills qemu, e.g.:
+
+qos-test.c:
+    qtest_add_abrt_handler(kill_qemu_hook_func, s);
+
+ref:
+https://git.qemu.org/?p=qemu.git;a=blob;f=tests/qtest/libqtest.c;h=e49f3a1e45f4cd96279241fdb2bbe231029ab922;hb=HEAD#l272
+
+But not unexpectedly there's no such handler for SIGTRAP.
+
+Apply this patch to trigger a repro:
+
+diff --git a/tests/qtest/e1000e-test.c b/tests/qtest/e1000e-test.c
+index fc226fdfeb..e83ace1b5c 100644
+--- a/tests/qtest/e1000e-test.c
++++ b/tests/qtest/e1000e-test.c
+@@ -87,6 +87,9 @@ static void e1000e_send_verify(QE1000E *d, int *test_sockets, QGuestAllocator *a
+     /* Wait for TX WB interrupt */
+     e1000e_wait_isr(d, E1000E_TX0_MSG_ID);
+
++    g_message("Test g_error hang ...");
++    g_error("Pretend something timed out");
++
+     /* Check DD bit */
+     g_assert_cmphex(le32_to_cpu(descr.upper.data) & dsta_dd, ==, dsta_dd);
+
+Then:
+
+configure
+make
+make check-qtest-i386
+
+check-qtest-i386 will take awhile. To repro faster:
+
+$ grep qtest-i386/qos-test Makefile.mtest
+.test.name.229 := qtest-i386/qos-test
+$ make run-test-229
+Running test qtest-i386/qos-test
+** Message: 18:40:49.821: Test g_error hang ...
+
+** (tests/qtest/qos-test:3820728): ERROR **: 18:40:49.821: Pretend something timed out
+ERROR qtest-i386/qos-test - Bail out! FATAL-ERROR: Pretend something timed out
+
+At this point things are hung because tap-driver.pl is still waiting for input because qemu is still running.
\ No newline at end of file