-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding 2019-05-06
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.
- related to
-
SERVER-38028 Participant with prepared transaction on session should block request for higher txn number on session rather than failing the new request
- Closed