Description
Describe the issue
When running unit tests in Chromium, absl::InitializeSymbolizer
can fail fatally on Windows because a STATUS_INFO_LENGTH_MISMATCH error happened while calling SymInitialize
. The message below will be printed in the console:
[symbolize_win32.inc : 62] RAW: SymInitialize() failed: 3221225476
Steps to reproduce the problem
This bug is quite hard to reproduce. But it is possible to catch it by repeatedly running a couple of specific Chromium unit tests:
autoninja blink_common_unittests
blink_common_unittests.exe --gtest_filter=MessagePortDescriptorTestDeathTest.InvalidUsageForSerialization --gtest_repeat=200 --test-launcher-jobs=10
Some tests will probably fail with:
[0410/162603.174:ERROR:base\test\launcher\test_launcher.cc:1279] Failed to get out-of-band test success data, dumping full stdio below:
[symbolize_win32.inc : 62] RAW: SymInitialize() failed: 3221225476
[0410/162603.174:ERROR:base\test\launcher\test_launcher.cc:1319] no test result for MessagePortDescriptorTestDeathTest.InvalidUsageForSerialization
[58/200] MessagePortDescriptorTestDeathTest.InvalidUsageForSerialization (TIMED OUT)
What version of Abseil are you using?
348602b0595b84226681e65cfa737b0472e57d71
What operating system and version are you using?
Win 11 26100.3775
What compiler and version are you using?
clang version 21.0.0git (https://chromium.googlesource.com/a/external/github.com/llvm/llvm-project 5b36835df010c5813808d34e45428c624fb52ff1)
What build system are you using?
GN 2223 (6e8e0d6d4a15)
Additional context
Sometimes SymInitialize might fail with a STATUS_INFO_LENGTH_MISMATCH. In this case, we should try calling it again a couple of times before raising a fatal error.