-
Notifications
You must be signed in to change notification settings - Fork 549
Open
Description
What
The unit test //tcmalloc/testing:background_test_no_glibc_rseq reliably fails since the linux commit 39a167560a61 ("rseq: Optimize event setting").
This was discussed on this archlinux issue. It was also discussed on the kernel mailing list. The latter thread also says:
Is this using tcmalloc? If so, that is somewhat expected because
tcmalloc is known to violate upstream rseq ABI. IIRC you should get a
nice splat if you enable rseq debug mode (echo 1 > /debug/rseq/debug).Perhaps this is the nudge Google needs to go fix this.
Failing unit test:
[arch@podman-mongodb tcmalloc]$ GLIBC_TUNABLES=glibc.pthread.rseq=1 bazel-bin/tcmalloc/testing/background_test_no_glibc_rseq
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from BackgroundTest
[ RUN ] BackgroundTest.Defaults
[ OK ] BackgroundTest.Defaults (0 ms)
[ RUN ] BackgroundTest.Stress
[ OK ] BackgroundTest.Stress (10017 ms)
[----------] 2 tests from BackgroundTest (10018 ms total)
[----------] Global test environment tear-down
[==========] 2 tests from 1 test suite ran. (10018 ms total)
[ PASSED ] 2 tests.
[arch@podman-mongodb tcmalloc]$ GLIBC_TUNABLES=glibc.pthread.rseq=0 bazel-bin/tcmalloc/testing/background_test_no_glibc_rseq
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from BackgroundTest
[ RUN ] BackgroundTest.Defaults
[ OK ] BackgroundTest.Defaults (0 ms)
[ RUN ] BackgroundTest.Stress
14207 ./tcmalloc/internal/percpu_tcmalloc.h:852] CHECK in Pop: next (false)
Aborted (core dumped) GLIBC_TUNABLES=glibc.pthread.rseq=0 bazel-bin/tcmalloc/testing/background_test_no_glibc_rseq
[arch@podman-mongodb tcmalloc]$ GLIBC_TUNABLES=glibc.pthread.rseq=0 /tmp/bazel test //tcmalloc/testing:background_test_no_glibc_rseq
WARNING: Build option --test_env has changed, discarding analysis cache (this can be expensive, see https://bazel.build/advanced/performance/iteration-speed).
INFO: Analyzed target //tcmalloc/testing:background_test_no_glibc_rseq (0 packages loaded, 5304 targets configured).
FAIL: //tcmalloc/testing:background_test_no_glibc_rseq (Aborted) (see /home/arch/.cache/bazel/_bazel_arch/3c882abdfeb0a7dc4942cd1a7209754a/execroot/_main/bazel-out/k8-fastbuild/testlogs/tcmalloc/testing/background_test_no_glibc_rseq/test.log)
INFO: Found 1 test target...
Target //tcmalloc/testing:background_test_no_glibc_rseq up-to-date:
bazel-bin/tcmalloc/testing/background_test_no_glibc_rseq
INFO: Elapsed time: 3.948s, Critical Path: 1.62s
INFO: 2 processes: 644 action cache hit, 2 linux-sandbox.
INFO: Build completed, 1 test FAILED, 2 total actions
//tcmalloc/testing:background_test_no_glibc_rseq FAILED in 1.6s
/home/arch/.cache/bazel/_bazel_arch/3c882abdfeb0a7dc4942cd1a7209754a/execroot/_main/bazel-out/k8-fastbuild/testlogs/tcmalloc/testing/background_test_no_glibc_rseq/test.log
Executed 1 out of 1 test: 1 fails locally.
[arch@podman-mongodb tcmalloc]$ cat /home/arch/.cache/bazel/_bazel_arch/3c882abdfeb0a7dc4942cd1a7209754a/execroot/_main/bazel-out/k8-fastbuild/testlogs/tcmalloc/testing/background_test_no_glibc_rseq/test.log
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //tcmalloc/testing:background_test_no_glibc_rseq
-----------------------------------------------------------------------------
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from BackgroundTest
[ RUN ] BackgroundTest.Defaults
[ OK ] BackgroundTest.Defaults (0 ms)
[ RUN ] BackgroundTest.Stress
28 ./tcmalloc/internal/percpu_tcmalloc.h:852] CHECK in Pop: next (false)
*** SIGABRT received at time=1773167104 on cpu 1 ***
23 ./tcmalloc/internal/percpu_tcmalloc.h:852] CHECK in Pop: next (false)
[failure_signal_handler.cc : 377] RAW: Signal 6 raised at PC=0x7f7d81d89a2c while already in AbslFailureSignalHandler()
19 ./tcmalloc/internal/percpu_tcmalloc.h:852] CHECK in Pop: next (false)
[failure_signal_handler.cc : 377] RAW: Signal 6 raised at PC=0x7f7d81d89a2c while already in AbslFailureSignalHandler()
[failure_signal_handler.cc : 377] RAW: Signal 11 raised at PC=0x5580fdd87519 while already in AbslFailureSignalHandler()
[failure_signal_handler.cc : 377] RAW: Signal 11 raised at PC=0x5580fdd87519 while already in AbslFailureSignalHandler()
20 ./tcmalloc/internal/percpu_tcmalloc.h:852] CHECK in Pop: next (false)
[failure_signal_handler.cc : 377] RAW: Signal 6 raised at PC=0x7f7d81d89a2c while already in AbslFailureSignalHandler()
PC: @ 0x7f7d81d89a2c (unknown) (unknown)
@ 0x7f7d82ae1c35 64 absl::lts_20260107::WriteFailureInfo()
@ 0x7f7d82ae1e74 96 absl::lts_20260107::AbslFailureSignalHandler()
@ 0x7f7d81d2f2d0 3120 (unknown)
@ 0x7f7d81d2f1a0 32 raise
@ 0x7f7d81d165fe 192 abort
@ 0x7f7d826b2d8d 704 tcmalloc::tcmalloc_internal::Crash()
@ 0x7f7d826b2dc2 48 tcmalloc::tcmalloc_internal::CheckFailed()
@ 0x5580fdc850a2 640 tcmalloc::tcmalloc_internal::CheckFailed<>()
@ 0x5580fdd78ab6 368 operator new()
@ 0x5580fdb7bc44 64 std::__new_allocator<>::allocate()
@ 0x5580fdb7a3a3 48 std::_Vector_base<>::_M_allocate()
@ 0x5580fdb7a5d1 256 std::vector<>::_M_realloc_append<>()
@ 0x5580fdb7934a 128 std::vector<>::emplace_back<>()
@ 0x5580fdb77c6d 48 std::vector<>::push_back()
@ 0x5580fdb76395 208 tcmalloc::AllocatorHarness::Run()
@ 0x5580fdb73d9d 32 tcmalloc::(anonymous namespace)::BackgroundTest_Stress_Test::TestBody()::{lambda()#1}::operator()()
@ 0x5580fdb74466 48 std::__invoke_impl<>()
@ 0x5580fdb74354 48 std::__invoke_r<>()
@ 0x5580fdb7421b 64 std::_Function_handler<>::_M_invoke()
@ 0x5580fdb78128 32 std::function<>::operator()()
@ 0x5580fdb76b50 32 tcmalloc::ThreadManager::Start()::{lambda()#1}::operator()()
@ 0x5580fdb7eba2 48 std::__invoke_impl<>()
@ 0x5580fdb7eaf2 48 std::__invoke<>()
@ 0x5580fdb7ea49 64 std::thread::_Invoker<>::_M_invoke<>()
@ 0x5580fdb7e9e6 32 std::thread::_Invoker<>::operator()()
@ 0x5580fdb7e9aa 32 std::thread::_State_impl<>::_M_run()
@ 0x7f7d820e55a4 32 (unknown)
@ 0x7f7d81d8797a 224 (unknown)
@ 0x7f7d81e0b2bc (unknown) (unknown)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels