[SERVER-10428] Windows debug build should fassert on C runtime errors Created: 04/Aug/13 Updated: 11/Jul/16 Resolved: 04/Aug/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | 2.5.2 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Tad Marshall | Assignee: | Tad Marshall |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Windows debug builds |
||
| Backwards Compatibility: | Minor Change |
| Operating System: | Windows |
| Participants: |
| Description |
|
The Windows debug build has some runtime tests (in the debug version of the MSVC "C" runtime library) that other builds don't have. In the current code, assertion failures from the "C" runtime library are logged and a stack trace is printed. Some of these assertions call abort(), terminating the process, after we return from displaying the error and stack trace. Other assertions continue running, possibly allowing other errors to occur. Worse, tests may complete without any indication that something has gone wrong, other than the log messages, which may not be noticed. Instead of returning after handling the assertion, we should just fassert so that the original problem will be addressed. |
| Comments |
| Comment by Tad Marshall [ 04/Aug/13 ] |
|
Marked as "Backward Breaking": Rarely because debug builds that would have continued running after a C runtime failure will not do that anymore ... which is the purpose of this code change. |
| Comment by auto [ 04/Aug/13 ] |
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: |