Marcello, aren't all asserts are fatal anyway in debug? Right now, an assert 
failure causes a Jenkin run to stop (good), but without much actionable 
information such as core dump (bad). I'm simply trying to fix the bad.

Personally I'm not in favor of creating yet another assert macro if we can 
improve the existing one to work better.

From: Lioy, Marcello [mailto:[email protected]]
Sent: Friday, March 18, 2016 8:23 AM
To: Way Vadhanasin <[email protected]>; 
[email protected]
Subject: RE: Making QCC_ASSERT generate core dump?

We could add a QCC_ASSERT_FATAL() that would trigger the seg_fault rather than 
having all of them fail.  It would be my preference that no all asserts trigger 
this behavior, but would like to hear from others.

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Way 
Vadhanasin
Sent: Thursday, March 17, 2016 2:20 PM
To: 
[email protected]<mailto:[email protected]>
Subject: [Allseen-core] Making QCC_ASSERT generate core dump?

I recently encountered a series of lock level assert issues in Jenkins with 
information like this:

Acquiring lock 0x7fe6580570e0 level 13040 
(alljoyn_core/router/UDPTransport.cc:3670). Current thread already owns lock 
0x2bec360 level 13060 (alljoyn_core/router/UDPTransport.cc:1584).
ajtest: common/src/LockOrderChecker.cc:214: void 
qcc::LockOrderChecker::AcquiringLock(const qcc::Mutex*, const char*, uint32_t): 
Assertion `false && "Detected out-of-order lock acquire"' failed

(see full log here: 
https://build.allseenalliance.org/ci/job/linux-gcc46-test-verify/1032/artifact/FAIL____ajtest.log<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fbuild.allseenalliance.org%2fci%2fjob%2flinux-gcc46-test-verify%2f1032%2fartifact%2fFAIL____ajtest.log&data=01%7c01%7cWayakorn.Vadhanasin%40microsoft.com%7c61abc99326804a1cdbf708d34f413759%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=6yelDHsG3xUIKNdgckMuXNY9hUkdhg7TI%2fI8PjFvKHU%3d>)

While this is useful, a core dump would be even better. We can either cause a 
segmentation fault always when assert fires (use another assert or just 
deference a nullptr) or do it only on a lock level assert failure. Does anyone 
have a preference one way or the other? I tend to think do it on all assert 
failures is better.

Thanks,
Way


_______________________________________________
Allseen-core mailing list
[email protected]
https://lists.allseenalliance.org/mailman/listinfo/allseen-core

Reply via email to