facebook / facebook/folly

"io_async_notification_queue_test.NotificationQueueTest.UseAfterFork" test crashes intermittently

Open
#2,366 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
30.5k
Forks
5.9k
PR merge metrics
No merged PRs in 30d

Description

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: https://github.com/facebook/folly/blob/ac5512494ce6c8b3ec896bb1267ffb38dadf0473/folly/io/async/test/NotificationQueueTest.cpp#L631

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; 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)

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.