[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: SERVER-16013 Wrap WiredTiger callbacks called from C in try-catch blocks.
Branch: master
https://github.com/mongodb/mongo/commit/9bfb7c3a805fb6151254389992548d22d08eed8c

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