[SERVER-11183] core PerfTests::Throw failing on OS X 10.8 C++11 DEBUG Created: 15/Oct/13  Updated: 11/Jul/16  Resolved: 18/Oct/13

Status: Closed
Project: Core Server
Component/s: Testing Infrastructure
Affects Version/s: None
Fix Version/s: 2.5.4

Type: Bug Priority: Minor - P4
Reporter: Matt Kangas Assignee: Andrew Morrow (Inactive)
Resolution: Done Votes: 0
Labels: buildbot
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-9767 Clang 3.2 miscompiles Perftests::thr4 Closed
Related
related to SERVER-9767 Clang 3.2 miscompiles Perftests::thr4 Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

This is probably the lowest priority of our build failures. But if this failure indicates another buried issue which has wider impact, let's dig into it.

d1c2ae72c482 OS X 10.8 C++11 DEBUG core (logfile)

2013-10-14T20:57:48.617-0400 [testsuite] perf                           | tests:   48 | fails:    1 | assert calls:         11 | time secs: 30.574
	PerfTests::Throw<&(PerfTests::thr4(int))>	 std::exception: testexception in test PerfTests::Throw<&(PerfTests::thr4(int))>

The output is really brief:

2013-10-14T20:55:29.472-0400 [testsuite] 	 going to run test: PerfTests::Throw<&(PerfTests::thr4(int))>
2013-10-14T20:55:29.477-0400 [testsuite] CMD: drop perftest.throw
2013-10-14T20:55:29.482-0400 [testsuite] FAIL: PerfTests::Throw<&(PerfTests::thr4(int))>	 std::exception: testexception in test PerfTests::Throw<&(PerfTests::thr4(int))>

What's interesting is that it has been failing consistently since d2651c8f82d9 (CommitDate: Wed Oct 2)

d2651c8f82d9 OS X 10.8 C++11 DEBUG core

And it was solid green before that.



 Comments   
Comment by auto [ 18/Oct/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-11183 Conditionally disable test that clang-3.2 mis-optimizes.
Branch: master
https://github.com/mongodb/mongo/commit/715d1a6629b86d4a892d6ff74889e84bda00c522

Comment by Andrew Morrow (Inactive) [ 15/Oct/13 ]

Bumping to 2.5.4: We don't need 2.5.3 green on C++11 builders, and we do understand the root cause. I do have a fix ready, but not worth even the low risk of disrupting 2.5.3 to get this in this late in the game.

Comment by Andrew Morrow (Inactive) [ 15/Oct/13 ]

I'd hoped to be able to patch this in a way that would never require that we revisit it, but apparently we can't test the __clang_major__ and __clang_minor__ defines meaningfully due to Apple's meddling (see http://stackoverflow.com/questions/19387043/how-can-i-reliably-detect-the-version-of-clang-at-preprocessing-time).

We will need to make the test unconditional to skip the test on clang, at least until we know that all platforms we want to target are clang-3.3 or better.

Comment by Andrew Morrow (Inactive) [ 15/Oct/13 ]

This is a known issue, tracked in SERVER-9767. The underlying cause is an optimizer bug in the XCode clang version being used on the build machine. The clang bug is fixed in XCode 5. However, we can't yet move to XCode 5 because of SERVER-11099, for which we have no known workaround.

As for why it went from solid green to solid red: we turned on optimization for all DEBUG builds, so the cause of this is is in the MCI configuration repo, not the mongodb repo.

As potential short term workarounds, we can either turn optimization off for this builder (assuming it doesn't run any tests that will take an egregiously long time in that mode - we can look and see what the total test runtime for the builder was for some build before we enabled optimizations), or we can just #ifdef out this particular test when _clang_ is defined, until we can move to XCode 5.

Generated at Thu Feb 08 03:25:08 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.