Skip to content

"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork" test crashes intermittently #2366

Open
@sin-ack

Description

@sin-ack

Contrary to the information message, the parent can also crash because the messages put on the queue by the parent don't seem to be available in the consumer for some reason. The specific crashing line is:

EXPECT_EQ(1234, consumer.messages.front());

Test output:

1574/3359 Testing: io_async_notification_queue_test.NotificationQueueTest.UseAfterFork
1574/3359 Test: io_async_notification_queue_test.NotificationQueueTest.UseAfterFork
Command: "/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/io_async_notification_queue_test" "--gtest_filter=NotificationQueueTest.UseAfterFork"
Directory: /var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00
"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork" start time: Jan 12 15:04 CET
Output:
----------------------------------------------------------
Note: Google Test filter = NotificationQueueTest.UseAfterFork
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from NotificationQueueTest
[ RUN      ] NotificationQueueTest.UseAfterFork
I20250112 15:04:36.172443  6319 NotificationQueueTest.cpp:582] This test makes sure the child process crashes.  Error log messagges and a backtrace are expected.
terminate called after throwing an instance of 'std::runtime_error'
  what():  Pid mismatch. Pid = 6322. Expecting 6319
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00/folly/io/async/test/NotificationQueueTest.cpp:630: Failure
Expected equality of these values:
  2
  consumer.messages.size()
    Which is: 0

/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_deque.h:1446: std::deque<_Tp, _Alloc>::reference std::deque<_Tp, _Alloc>::front() [with _Tp = int; _Alloc = std::allocator<int>; reference = int&]: Assertion '!this->empty()' fai
led.
*** Aborted at 1736690676 (Unix time, try 'date -d @1736690676') ***
*** Signal 6 (SIGABRT) (0xfa000018af) received by PID 6319 (pthread TID 0x7fd61da2c2c0) (linux TID 6319) (maybe from PID 6319, UID 250) (code: -6), stack trace: ***
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/libfolly.so.0.58.0-dev(_ZN5folly10symbolizer17getStackTraceSafeEPmm+0x72) [0x7fd61eab9982]
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/libfolly.so.0.58.0-dev(_ZN5folly10symbolizer21SafeStackTracePrinter15printStackTraceEb+0x40) [0x7fd61eabbe70]
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/libfolly.so.0.58.0-dev(+0x2b8dd7) [0x7fd61eab8dd7]
/lib64/libc.so.6(+0x40ccf) [0x7fd61e263ccf]
/lib64/libc.so.6(+0x97ccc) [0x7fd61e2baccc]
/lib64/libc.so.6(gsignal+0x15) [0x7fd61e263c25]
/lib64/libc.so.6(abort+0xd6) [0x7fd61e24b8f9]
/usr/lib/gcc/x86_64-pc-linux-gnu/14/libstdc++.so.6(_ZSt21__glibcxx_assert_failPKciS0_S0_+0x6e) [0x7fd61e4db54e]
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/io_async_notification_queue_test(_ZN39NotificationQueueTest_UseAfterFork_Test8TestBodyEv+0x8be) [0x55c1bffad24e]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc+0x96) [0x7fd61f06cf86]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing4Test3RunEv+0xd5) [0x7fd61f051bb5]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing8TestInfo3RunEv+0x194) [0x7fd61f051d84]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing9TestSuite3RunEv+0x2cc) [0x7fd61f05207c]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing8internal12UnitTestImpl11RunAllTestsEv+0x337) [0x7fd61f0601c7]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS0_12UnitTestImplEbEET0_PT_MS4_FS3_vEPKc+0x96) [0x7fd61f06d6f6]
/usr/lib64/libgtest.so.1.14.0(_ZN7testing8UnitTest3RunEv+0x77) [0x7fd61f052197]
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/libfolly_test_support.so(main+0x5b) [0x7fd61f0be9fb]
/lib64/libc.so.6(+0x2a3ed) [0x7fd61e24d3ed]
/lib64/libc.so.6(__libc_start_main+0x88) [0x7fd61e24d4a8]
/var/tmp/portage/dev-cpp/folly-2025.01.06.00/work/folly-2025.01.06.00_build/io_async_notification_queue_test(_start+0x24) [0x55c1bffa8134]
(safe mode, symbolizer not available)
<end of output>
Test time =   0.03 sec
----------------------------------------------------------
Test Failed.
"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork" end time: Jan 12 15:04 CET
"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork" time elapsed: 00:00:00
----------------------------------------------------------

System information

OS: Gentoo Linux amd64 (x86_64-pc-linux-gnu)
Compiler: gcc (Gentoo Hardened 14.2.1_p20241221 p7) 14.2.1 20241221
C++ stdlib implementation: stdlibc++
Folly version: 2025.01.06.00

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions