congbobo184 opened a new pull request #10131: URL: https://github.com/apache/pulsar/pull/10131
## Motivation When transaction in aborting or committing status, we retry endTransaction and update status in ```TransactionMetadataStore``` will throw ```InvalidTxnStatusException```, it will not retry. so we should judge the Transaction status try to retry. ## implement 1. When Transaction status in ```OPEN```status, we can updateStatus by ```TransactionMetadataStore```. 2. When Transaction status in ```Committing``` or ```Aborting``` status, we should judge the ```TxnAction```, if txnAction corresponds to the ```TxnStatus``` only ```endTxnInTransactionBuffer```, if not we don't do any operation. 3. When Transaction status in another status, don't need to handle. 4. When ```TransactionNotFoundException``` or ```CoordinatorNotFoundException``` can stop retry op. ### Verifying this change Add the tests for it Does this pull request potentially affect one of the following parts: If yes was chosen, please highlight the changes Dependencies (does it add or upgrade a dependency): (no) The public API: (no) The schema: (no) The default values of configurations: (no) The wire protocol: (no) The rest endpoints: (no) The admin cli options: (no) Anything that affects deployment: (no) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
