-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
Fully Compatible
-
ALL
-
-
Sharding 2022-07-11, Sharding 2022-07-25, Sharding 2022-08-08
-
135
Whenever ShardingDataTransformInstanceMetrics destructor is called, it will remove the observer to itself (here) from the ShardingDataTransformCumulativeMetrics. The issue is that ShardingDataTransformInstanceMetrics::getRecipientHighEstimateRemainingTimeMillis is a pure virtual function and by the time the destructor for ShardingDataTransformInstanceMetrics is being run, the child class is already destroyed (In production server, this is the ReshardingMetrics class). So there is a small window where the observer instance is still accessible and trying to call getRecipientHighEstimateRemaining on it will result in terminating the server.
- is duplicated by
-
SERVER-67048 Replace ShardingDataTransformCumulativeMetrics DeregistrationFunction with ScopeGuard
- Closed