RESOLVED FIXED 67357
TestWebKitAPI builder passes no -DNDEBUG to compiler in release mode, causing crashes
https://bugs.webkit.org/show_bug.cgi?id=67357
Summary TestWebKitAPI builder passes no -DNDEBUG to compiler in release mode, causing...
Xianzhu Wang
Reported 2011-08-31 21:36:17 PDT
Created attachment 105894 [details] The patch for testing (not for review and commit) TestWebKitAPI builder passes no -DNDEBUG to compiler in release mode, causes some header files to be mistakenly compiled and the TestWebKitAPI executable file isn't binary compatible with the shared libraries. For example, RefCounted.h without -DNDEBUG will have some extra fields and assertions that are for debug mode only compiled in the executable. To reproduce the problem: 1. patch the attached file; 2. build-api-tests [--release] 3. run-api-tests [--release] ASSERTION FAILED: !m_deletionHasBegun /Users/wangxianzhu/webkit/WebKitBuild/Release/JavaScriptCore.framework/PrivateHeaders/RefCounted.h(123) : bool WTF::RefCountedBase::derefBase() 1 WTF::RefCounted<WTF::CStringBuffer>::deref() 2 TestWebKitAPI::WTF_CrashInRelease_Test::TestBody() 3 testing::Test::Run() 4 testing::internal::TestInfoImpl::Run() 5 testing::TestCase::Run() 6 testing::internal::UnitTestImpl::RunAllTests() 7 TestWebKitAPI::TestsController::run(int, char**) 8 main 9 start 10 0x2 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x00000000bbadbeef 0x0000000100013bad in WTF::RefCountedBase::derefBase (this=0x103c013c0) at RefCounted.h:123 123 ASSERT(!m_deletionHasBegun);
Attachments
The patch for testing (not for review and commit) (1.28 KB, patch)
2011-08-31 21:36 PDT, Xianzhu Wang
no flags
Xianzhu Wang
Comment 1 2011-09-16 07:59:36 PDT
I believe the failures on the bot (SnowLeopard Release Tests http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29) are caused by this bug.
Mark Rowe (bdash)
Comment 2 2011-09-16 11:28:59 PDT
NDEBUG means “not debug”. It is expected to be defined in non-debug configurations.
Xianzhu Wang
Comment 3 2011-09-18 19:03:46 PDT
(In reply to comment #2) > NDEBUG means “not debug”. It is expected to be defined in non-debug configurations. Right. This is why now missing it in Release configurations causes some tests to crash.
David Kilzer (:ddkilzer)
Comment 4 2011-12-20 11:24:28 PST
Building TestWebKitAPI using "./Tools/Scripts/build-api-test --release" shows me that -NDEBUG is being set in the command line. Has this been fixed? Or does this only affect the chromium-mac port now?
David Kilzer (:ddkilzer)
Comment 5 2011-12-20 11:25:48 PST
(In reply to comment #4) > Building TestWebKitAPI using "./Tools/Scripts/build-api-test --release" shows me that -NDEBUG is being set in the command line. > > Has this been fixed? Or does this only affect the chromium-mac port now? Moving to RESOLVED/FIXED. Please move it back (and add "[CHROMIUM] " to the title)if this still affects the chromium-mac port.
Note You need to log in before you can comment on or make changes to this bug.