Data race condition
The value of the shared data will be determined by the interleaving of thread execution. Thread shared data is accessed without holding an appropriate lock, possibly causing a race condition
/src/mongo/db/s/transaction_coordinator_futures_util.h:395: MISSING_LOCK 175097 Accessing "this->sharedBlock->status" without holding lock "mongo::Future<mongo::txn::PrepareVoteConsensus> mongo::txn::collect<mongo::txn::PrepareResponse, mongo::txn::PrepareVoteConsensus, mongo::txn::sendPrepare(mongo::ServiceContext *, mongo::txn::AsyncWorkScheduler &, mongo::LogicalSessionId const &, mongo::TxnNumberAndRetryCounter const &, mongo::APIParameters const &, std::vector<mongo::ShardId, std::allocator<mongo::ShardId> > const &)::[lambda(mongo::txn::PrepareVoteConsensus &, mongo::txn::PrepareResponse const &) (instance 1)]>(std::vector<mongo::Future<mongo::txn::PrepareResponse>, std::allocator<mongo::Future<mongo::txn::PrepareResponse> > > &&, mongo::txn::PrepareVoteConsensus &&, mongo::txn::sendPrepare(mongo::ServiceContext *, mongo::txn::AsyncWorkScheduler &, mongo::LogicalSessionId const &, mongo::TxnNumberAndRetryCounter const &, mongo::APIParameters const &, std::vector<mongo::ShardId, std::allocator<mongo::ShardId> > const &)::[lambda(mongo::txn::PrepareVoteConsensus &, mongo::txn::PrepareResponse const &) (instance 1)] &&)::SharedBlock.mutex". Elsewhere, "mongo::Future<mongo::txn::PrepareVoteConsensus> mongo::txn::collect<mongo::txn::PrepareResponse, mongo::txn::PrepareVoteConsensus, mongo::txn::sendPrepare(mongo::ServiceContext *, mongo::txn::AsyncWorkScheduler &, mongo::LogicalSessionId const &, mongo::TxnNumberAndRetryCounter const &, mongo::APIParameters const &, std::vector<mongo::ShardId, std::allocator<mongo::ShardId> > const &)::[lambda(mongo::txn::PrepareVoteConsensus &, mongo::txn::PrepareResponse const &) (instance 1)]>(std::vector<mongo::Future<mongo::txn::PrepareResponse>, std::allocator<mongo::Future<mongo::txn::PrepareResponse> > > &&, mongo::txn::PrepareVoteConsensus &&, mongo::txn::sendPrepare(mongo::ServiceContext *, mongo::txn::AsyncWorkScheduler &, mongo::LogicalSessionId const &, mongo::TxnNumberAndRetryCounter const &, mongo::APIParameters const &, std::vector<mongo::ShardId, std::allocator<mongo::ShardId> > const &)::[lambda(mongo::txn::PrepareVoteConsensus &, mongo::txn::PrepareResponse const &) (instance 1)] &&)::SharedBlock.status" is written to with "SharedBlock.mutex" held 1 out of 1 times.