[SERVER-40808] Recovering a transaction's outcome should block if the participant is in prepare Created: 24/Apr/19  Updated: 29/Oct/23  Resolved: 02/May/19

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.1.11

Type: Task Priority: Major - P3
Reporter: Esha Maharishi (Inactive) Assignee: Esha Maharishi (Inactive)
Resolution: Fixed Votes: 0
Labels: ShardedTxn:ReadOnly
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-38028 Participant with prepared transaction... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2019-05-06
Participants:

 Description   

Since with SERVER-40806, the recovery shard and coordinator shard can be different, it's possible for recovering the transaction's outcome to find the a participant in prepare.

For example:

1) client sends commit to original mongos
2) mongos hands off commit to coordinator
3) coordinator sends prepares
4) client sends "recover" commit to different mongos
5) different mongos tries to recover from the recovery shard, which is not necessarily the coordinator shard, and so doesn't necessarily have a coordinator in its in-memory catalog. so, the recovery shard node tries to recover from its local participant and finds the local participant in prepare

Recovering a transaction's outcome should be changed to block until the participant has finished committing or aborting the transaction.



 Comments   
Comment by Githook User [ 02/May/19 ]

Author:

{'email': 'esha.maharishi@mongodb.com', 'name': 'Esha Maharishi', 'username': 'EshaMaharishi'}

Message: SERVER-40808 Recovering a transaction's outcome should block if the participant is in prepare
Branch: master
https://github.com/mongodb/mongo/commit/2d54db5b603d8ac3d4529f773614db36ab1298e6

Generated at Thu Feb 08 04:56:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.