[SERVER-16013] All callbacks invoked by WiredTiger (and other C) storage engines must terminate rather than propagate exceptions Created: 07/Nov/14 Updated: 11/Jul/16 Resolved: 12/Nov/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 2.8.0-rc1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Andy Schwerin | Assignee: | Andy Schwerin |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Participants: |
| Description |
|
Because C code is not exception safe, C++ callbacks invoked by C code need to terminate rather than allow exceptions to escape. This could be done by labeling these callbacks as noexcept, except that several compilers do not correctly implement noexcept. Instead, we should just wrap the bodies of these functions in try { } catch (...) { std::terminate() }. |
| Comments |
| Comment by Githook User [ 12/Nov/14 ] |
|
Author: {u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}Message: |