RFR: 8292054: Test runtime/posixSig/TestPosixSig.java fails with 'Test failed, bad output.' [v2]
Harold Seigel
hseigel at openjdk.org
Wed Aug 17 15:16:49 UTC 2022
On Wed, 17 Aug 2022 14:02:24 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> Harold Seigel has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Improve gtest based on review comments
>
> test/hotspot/gtest/runtime/test_signals.cpp line 71:
>
>> 69: modified = strstr(modified + 1, "Handler was modified!");
>> 70: ASSERT_NE(modified, nullptr) << "Only one message found";
>> 71: ASSERT_EQ(strstr(modified + 1, "Handler was modified!"), nullptr) << "Too many messages found";
>
> Should this also assert that you only see one SIGFPE and one SIGILL handler once after both are modified ?
The test could be changed to assert that but the main goal of the test is to check that the list of signals only appears once.
The test is testing the fix for https://bugs.openjdk.org/browse/JDK-8285792. Without the fix for 8285792, users would see output like this if two handlers were modified. Note that the full list of signals appears twice!
Warning: SIGILL handler modified!
Signal Handlers:
SIGSEGV: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGBUS: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGFPE: sig_handler in libTestPsig.so, mask=00000000000000000000000000000000, flags=none
*** Handler was modified!
*** Expected: javaSignalHandler in libjvm.so, mask=11100100110111111111111111111110, flags=SA_RESTART|SA_SIGINFO
SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGILL: sig_handler in libTestPsig.so, mask=00000000000000000000000000000000, flags=none
*** Handler was modified!
*** Expected: javaSignalHandler in libjvm.so, mask=11100100110111111111111111111110, flags=SA_RESTART|SA_SIGINFO
SIGUSR2: SR_handler in libjvm.so, mask=00100000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO
SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGTRAP: SIG_DFL, mask=00000000000000000000000000000000, flags=none
Consider using jsig library.
Warning: SIGFPE handler modified!
Signal Handlers:
SIGSEGV: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGBUS: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGFPE: sig_handler in libTestPsig.so, mask=00000000000000000000000000000000, flags=none
*** Handler was modified!
*** Expected: javaSignalHandler in libjvm.so, mask=11100100110111111111111111111110, flags=SA_RESTART|SA_SIGINFO
SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGILL: sig_handler in libTestPsig.so, mask=00000000000000000000000000000000, flags=none
*** Handler was modified!
*** Expected: javaSignalHandler in libjvm.so, mask=11100100110111111111111111111110, flags=SA_RESTART|SA_SIGINFO
SIGUSR2: SR_handler in libjvm.so, mask=00100000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO
SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
SIGTRAP: SIG_DFL, mask=00000000000000000000000000000000, flags=none
Consider using jsig library.
With the fix, the full list of signals should only appear once, showing both modified handlers.
-------------
PR: https://git.openjdk.org/jdk/pull/9882
More information about the hotspot-runtime-dev
mailing list