[LLVMbugs] [Bug 11899] New: Double-running of global dtors in shared build
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Tue Jan 31 13:11:22 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=11899
Bug #: 11899
Summary: Double-running of global dtors in shared build
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: -New Bugs
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: fischman at chromium.org
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
In the clang & the shared_library build of chromium browser_tests (setup
described in bug 11898), running the browser_tests binary like:
./out/Debug/browser_tests --gtest_filter=InProcessBrowserTest.Empty
runs a test, forks a browser, concludes the test, tears down the browser, and
the browser crashes with:
[25190:25190:0131/131308:431338029426:ERROR:process_util_posix.cc(142)]
Received signal 11
base::debug::StackTrace::StackTrace() [0x7f9666f43ffe]
base::(anonymous namespace)::StackDumpSignalHandler() [0x7f9666facfd4]
0x7f965c08caf0
DieFromDoubleFree() [0x7f96699578fe]
ValidateAllocatedRegion() [0x7f9669957872]
(anonymous namespace)::do_free_with_callback() [0x7f966995760b]
(anonymous namespace)::do_free() [0x7f966995588c]
operator delete[]() [0x7f9669da25fe]
testing::internal::String::~String() [0x51db0d]
testing::internal::String::~String() [0x51d755]
std::_Destroy<>() [0x1d21505]
std::_Destroy_aux<>::__destroy<>() [0x1d214d7]
std::_Destroy<>() [0x1d2149d]
std::_Destroy<>() [0x1d21331]
std::vector<>::~vector() [0x7f96633997fe]
std::vector<>::~vector() [0x7f96633994c5]
0x7f965c092630
0x7f966304bc56
This doesn't happen with the gcc/shared_library build, or with
clang/static_library build.
I'd be happy to provide more info but not sure how to dig into this further.
It *feels* like there's a global std::vector<testing::internal::String> that's
being destroyed more than once.
I suspect this one:
http://code.google.com/codesearch#OAMlx_jo-ck/src/testing/gtest/src/gtest-port.cc&exact_package=chromium&q=vector%3C%5Ba-z:%5D*String%20case:yes%20file:gtest&ct=rc&cd=2&sq=&l=631
Any ideas on how to dig further?
(gdb-based attempts are likely to be stymied by bug 11898, unless they don't
require symbol inspection)
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list