[SERVER-74677] Coverity analysis defect 135358: Copy without assign Created: 07/Mar/23  Updated: 29/Oct/23  Resolved: 15/Jun/23

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: 7.1.0-rc0

Type: Improvement Priority: Minor - P4
Reporter: Coverity Collector User Assignee: Brett Nawrocki
Resolution: Fixed Votes: 0
Labels: coverity, sharding-nyc-subteam1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screenshot 2023-03-07 at 1.10.32 PM.png    
Issue Links:
Problem/Incident
is caused by SERVER-73081 Implement MovePrimaryCumulativeMetrics Closed
Related
related to SERVER-74678 Coverity analysis defect 135355: Copy... Closed
Assigned Teams:
Sharding NYC
Backwards Compatibility: Fully Compatible
Participants:

 Description   

Copy without assign: src/mongo/db/s/metrics/with_state_management_for_cumulative_metrics.h:44

This class has a user-defined copy constructor but no user-defined assignment operator. If the copy constructor is necessary to manage owned resources then a corresponding assignment operator is usually required. If an object of this type is assigned memory leaks and/or use-after-free errors may occur. Note that a compiler-generated assignment operator will perform only a bit-wise copy for any fields that do not have their own assignment operators defined. Class has user-written copy constructor but no user-written assignment operator
/src/mongo/db/s/metrics/with_state_management_for_cumulative_metrics.h:44: COPY_WITHOUT_ASSIGN 135358 Class "mongo::WithStateManagementForCumulativeMetrics<mongo::ShardingDataTransformCumulativeMetrics, mongo::global_index::GlobalIndexMetricsEnumSizeTemplateHelper, mongo::GlobalIndexCoordinatorStateEnumPlaceholder, mongo::global_index::GlobalIndexClonerStateEnum>" has a user-written copy constructor "mongo::WithStateManagementForCumulativeMetrics<mongo::ShardingDataTransformCumulativeMetrics, mongo::global_index::GlobalIndexMetricsEnumSizeTemplateHelper, mongo::GlobalIndexCoordinatorStateEnumPlaceholder, mongo::global_index::GlobalIndexClonerStateEnum>::WithStateManagementForCumulativeMetrics<mongo::WithStateManagementForCumulativeMetrics<mongo::ShardingDataTransformCumulativeMetrics, mongo::global_index::GlobalIndexMetricsEnumSizeTemplateHelper, mongo::GlobalIndexCoordinatorStateEnumPlaceholder, mongo::global_index::GlobalIndexClonerStateEnum> >(mongo::WithStateManagementForCumulativeMetrics<mongo::ShardingDataTransformCumulativeMetrics, mongo::global_index::GlobalIndexMetricsEnumSizeTemplateHelper, mongo::GlobalIndexCoordinatorStateEnumPlaceholder, mongo::global_index::GlobalIndexClonerStateEnum> &&)" but no corresponding user-written assignment operator.
/src/mongo/db/s/metrics/with_state_management_for_cumulative_metrics.h:50: COPY_WITHOUT_ASSIGN 135358 User-written copy constructor.



 Comments   
Comment by Githook User [ 01/Jun/23 ]

Author:

{'name': 'Brett Nawrocki', 'email': 'brett.nawrocki@mongodb.com', 'username': 'brettnawrocki'}

Message: SERVER-74677 Fix coverity for WithStateManagementForCumulativeMetrics
Branch: master
https://github.com/mongodb/mongo/commit/6119e9e1a93a184dd17bb066966fad575a3e1144

Comment by Kyle Suarez [ 08/Mar/23 ]

I filed SERVER-74678 and this ticket, but after doing a double-take I feel this might actually be a false positive? I wasn't sure if the templatization or argument forwarding was making Coverity think this was a copy constructor instead of a regular constructor. I'll leave this in Sharding's court to make a final call.

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