diff --git a/bin/varnishd/cache/cache_main.c b/bin/varnishd/cache/cache_main.c index c77cca91b1..8262e1e5e2 100644 --- a/bin/varnishd/cache/cache_main.c +++ b/bin/varnishd/cache/cache_main.c @@ -243,9 +243,10 @@ child_signal_handler(int s, siginfo_t *si, void *c) memset(&sa, 0, sizeof sa); sa.sa_handler = SIG_DFL; (void)sigaction(SIGSEGV, &sa, NULL); + (void)sigaction(SIGBUS, &sa, NULL); (void)sigaction(SIGABRT, &sa, NULL); - while (s == SIGSEGV) { + while (s == SIGSEGV || s == SIGBUS) { req = THR_GetRequest(); if (req == NULL || req->wrk == NULL) break; diff --git a/bin/varnishtest/tests/c00057.vtc b/bin/varnishtest/tests/c00057.vtc index f33a8bde63..09a9c1cd09 100644 --- a/bin/varnishtest/tests/c00057.vtc +++ b/bin/varnishtest/tests/c00057.vtc @@ -76,7 +76,7 @@ client c2 -connect ${v2_sock} { expect_close } -run -varnish v2 -cliexpect "Segmentation [fF]ault" "panic.show" +varnish v2 -cliexpect "[bB]us error|Segmentation [fF]ault" "panic.show" varnish v2 -cliok "panic.clear"