[SERVER-85735] Make ExternalDataSourceScopeGuard a unique_ptr rather than shared_ptr Created: 25/Jan/24  Updated: 26/Jan/24

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

Type: Task Priority: Major - P3
Reporter: Will Buerger Assignee: Backlog - Query Integration
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-85453 ExternalDataSourceScopeGuard should n... Closed
Assigned Teams:
Query Integration
Participants:

 Description   

SERVER-85453 modified the external data source system so that its decoration on the client cursor is effectively a unique_ptr. However, making it a unique_ptr in practice proved to unveil some scope complications that violated intentional lock/operation ordering in run_aggregate.

We should try to work around that to make it a unique_ptr so we can be confident the scope guard's lifecycle is as expected. We should also consider making it a member field in the client cursor, rather than a decoration (which will require some SCons library refactoring to avoid a dependency).


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