[SERVER-69823] Make RecoveryUnit::Change commit and rollback interfaces noexcept Created: 20/Sep/22  Updated: 14/Aug/23

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Henrik Edin Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: techdebt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-68256 PIT instantiated CollectionImpl lifet... Closed
Assigned Teams:
Storage Execution
Participants:

 Description   

They are currently de-facto noexcept as std::terminate is called if commit or rollback throw. But we should make this explicit for users implementing this interface by changing the interface to use the noexcept keyword.

 

After SERVER-68256 we have four implementations of iterating and invoking callbacks:

  • _executeCommitHandlers()
  • _executeRollbackHandlers()
  • _executeOpenSnapshotHandlers()
  • _executeCloseSnapshotHandlers()

We should look into providing an abstraction for this.



 Comments   
Comment by Louis Williams [ 05/Oct/22 ]

See SERVER-70148 for reasons why noexcept might not be what we want

Generated at Thu Feb 08 06:14:30 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.