[SERVER-42381] A failed unstashTransactionResources must leave transaction in stashed or aborted state Created: 24/Jul/19 Updated: 06/Dec/22 Resolved: 24/Jul/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Russotto | Assignee: | Backlog - Replication Team |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Assigned Teams: |
Replication
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
If TransactionParticipant::Participant::unstashTransactionResources fails nonfatally for any reason, it must either leave the transaction in a stashed state or an aborted state, otherwise the transaction resources may be lost. In service_entry_point_common, unstashTransactionResources has no guard around it, and it's not clear what such a guard could do because a failure from unstashTransactionResources currently may leave the transaction either stashed or unstashed. |
| Comments |
| Comment by Suganthi Mani [ 24/Jul/19 ] |
|
Currently, this |
| Comment by Siyuan Zhou [ 24/Jul/19 ] |
|
matthew.russotto, do you mean this line? |
| Comment by Matthew Russotto [ 24/Jul/19 ] |
|
Specifically it is TransactionParticipant::TxnResources::release() line 862 which I think can fail. I thought we fixed this before but it doesn't look fixed. |
| Comment by Judah Schvimer [ 24/Jul/19 ] |
|
suganthi.mani, this seems related to work you're working on. |