You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@seata.apache.org by "xiaoxiangyeyu0 (via GitHub)" <gi...@apache.org> on 2026/02/14 07:52:08 UTC
[PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
xiaoxiangyeyu0 opened a new pull request, #7997:
URL: https://github.com/apache/incubator-seata/pull/7997
… of global rollback
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Please make sure you have read and understood the contributing guidelines -->
- [ ] I have read the [CONTRIBUTING.md](https://github.com/apache/incubator-seata/blob/2.x/CONTRIBUTING.md) guidelines.
- [ ] I have registered the PR [changes](https://github.com/apache/incubator-seata/tree/2.x/changes).
### Ⅰ. Describe what this PR did
When an error occurs during the close phase of XA mode, Spring will swallow the exception and TM can initiate global transaction commit normally. TC can also submit global transactions normally, which is unreasonable. Therefore, a prepare Failed status is added to report to TC and roll back globally
### Ⅱ. Does this pull request fix one issue?
<!-- If that, add "fixes #xxx" below in the next line, for example, fixes #97. -->
https://github.com/apache/incubator-seata/issues/7975
### Ⅲ. Why don't you add test cases (unit test/integration test)?
### Ⅳ. Describe how to verify it
### Ⅴ. Special notes for reviews
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
Posted by "xiaoxiangyeyu0 (via GitHub)" <gi...@apache.org>.
xiaoxiangyeyu0 commented on code in PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997#discussion_r2844997125
##########
rm-datasource/src/main/java/org/apache/seata/rm/datasource/xa/ConnectionProxyXA.java:
##########
@@ -348,9 +348,13 @@ public void close() throws SQLException {
reportStatusToTC(BranchStatus.PhaseOne_RDONLY);
}
}
+ } catch (SQLException xe) {
+ // Branch Report to TC: Exception
+ reportStatusToTC(BranchStatus.PhaseOne_PrepareFailed);
+ throw xe;
} catch (XAException xe) {
- // Branch Report to TC: Failed
- reportStatusToTC(BranchStatus.PhaseOne_Failed);
+ // Branch Report to TC: Exception
+ reportStatusToTC(BranchStatus.PhaseOne_PrepareFailed);
Review Comment:
After the modification of the pre submission fails, call the rollback method and close the original connection
修改预提交失败后,调用回滚方法并关闭原始连接
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997#discussion_r2969542963
##########
common/src/main/java/org/apache/seata/core/model/GlobalStatus.java:
##########
@@ -235,4 +235,17 @@ public static boolean isTwoPhaseHeuristic(GlobalStatus status) {
}
return false;
}
+
+ /**
+ * Is one phase prepare failed boolean.
+ *
+ * @param status the status
+ * @return the boolean
+ */
+ public static boolean isOnePhasePrepareFailed(GlobalStatus status) {
+ if (status == GlobalStatus.RollbackRetrying) {
+ return true;
+ }
+ return false;
Review Comment:
`GlobalStatus.isOnePhasePrepareFailed()` currently returns true for `GlobalStatus.RollbackRetrying`, which is a generic rollback-retry state used in multiple scenarios (e.g., normal rollback retries). This makes the method name/contract misleading and can cause TM-side logic to report “prepare failed” when the real reason is an unrelated rollback retry. Consider either introducing a dedicated `GlobalStatus` for prepare-failed scenarios, or renaming the helper to reflect what it actually checks, or tightening the check based on additional state that uniquely identifies prepare failures.
##########
tm/src/main/java/org/apache/seata/tm/api/TransactionalTemplate.java:
##########
@@ -373,9 +375,15 @@ private void commitTransaction(GlobalTransaction tx, TransactionInfo txInfo)
statusException = new TmTransactionException(
TransactionExceptionCode.TransactionTimeout,
String.format("Global transaction[%s] is timeout and will be rollback[TC].", tx.getXid()));
+ } else if (GlobalStatus.isOnePhasePrepareFailed(afterCommitStatus)) {
+ statusException = new TmTransactionException(
+ TransactionExceptionCode.BranchPrepareFailed,
+ String.format(
+ "Global transaction[%s] is branch prepare failure and will be rollback[TC].",
Review Comment:
The new `BranchPrepareFailed` exception is triggered purely by `afterCommitStatus` matching `isOnePhasePrepareFailed(...)`, but that predicate currently maps to `RollbackRetrying` (a non-specific status). This risks throwing `TransactionExceptionCode.BranchPrepareFailed` with a misleading message when the global is rollback-retrying for reasons other than XA prepare failure. If you can’t introduce a dedicated global status, consider using a more generic exception/message for `RollbackRetrying`, or attaching a distinct marker (e.g., applicationData) so the TM can distinguish prepare-failed rollbacks from other rollback-retry situations.
```suggestion
TransactionExceptionCode.Unknown,
String.format(
"Global transaction[%s] is in rollback-retrying status after commit and will be rollback[TC].",
```
##########
core/src/main/java/org/apache/seata/core/model/BranchStatus.java:
##########
@@ -112,7 +112,13 @@ public enum BranchStatus {
* Stop retry
* description:user operate to stop retry
*/
- STOP_RETRY(14);
+ STOP_RETRY(14),
+
+ /**
+ * The Phase one prepare failed.
+ * description:Branch logic is prepare Failed at phase one, need to notify TC of global rollback
Review Comment:
Javadoc has grammatical/capitalization issues (“prepare Failed”). Consider rephrasing to something like “Branch prepare failed in phase one; notify TC to roll back the global transaction” for clarity and consistency with the other enum descriptions.
```suggestion
* description:Branch prepare failed in phase one; notify TC to roll back the global transaction.
```
##########
server/src/main/java/org/apache/seata/server/transaction/xa/XACore.java:
##########
@@ -44,7 +46,18 @@ public void branchReport(
BranchType branchType, String xid, long branchId, BranchStatus status, String applicationData)
throws TransactionException {
super.branchReport(branchType, xid, branchId, status, applicationData);
- if (BranchStatus.PhaseOne_Failed == status) {}
+ if (BranchStatus.PhaseOne_PrepareFailed == status) {
+ GlobalSession globalSession = SessionHolder.findGlobalSession(xid);
+ // just lock changeStatus
+ SessionHolder.lockAndExecute(globalSession, () -> {
+ globalSession.close(); // Highlight: Firstly, close the session, then no more branch can be registered.
+ if (globalSession.getStatus() == GlobalStatus.Begin) {
+ globalSession.changeGlobalStatus(GlobalStatus.RollbackRetrying);
+ return true;
Review Comment:
`SessionHolder.findGlobalSession(xid)` can return null, but the result is used immediately in `lockAndExecute(globalSession, ...)` and dereferenced inside the lambda. If the global session is concurrently finished/removed after `super.branchReport(...)`, this can cause an NPE. Consider reusing the already-validated session (e.g., by moving the XA-specific logic into the `AbstractCore.branchReport` path) or at least null-checking `globalSession` before calling `lockAndExecute` and before dereferencing it in the callback.
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
Posted by "xiaoxiangyeyu0 (via GitHub)" <gi...@apache.org>.
xiaoxiangyeyu0 commented on code in PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997#discussion_r2844992959
##########
common/src/main/java/org/apache/seata/core/model/GlobalStatus.java:
##########
@@ -235,4 +235,17 @@ public static boolean isTwoPhaseHeuristic(GlobalStatus status) {
}
return false;
}
+
+ /**
+ * Is one phase prepare failed boolean.
+ *
+ * @param status the status
+ * @return the boolean
+ */
+ public static boolean isOnePhasePrepareFailed(GlobalStatus status) {
+ if (status == GlobalStatus.RollbackRetrying) {
Review Comment:
This is the global transaction status returned by TC when TM submits a global transaction. The newly added branch status will update the global transaction status to RollbackRetraining
这是TM提交全局事务时,TC返回的全局事务状态,新加的分支状态会把全局事务状态更新为RollbackRetrying
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
Posted by "funky-eyes (via GitHub)" <gi...@apache.org>.
funky-eyes commented on code in PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997#discussion_r2844114383
##########
rm-datasource/src/main/java/org/apache/seata/rm/datasource/xa/ConnectionProxyXA.java:
##########
@@ -348,9 +348,13 @@ public void close() throws SQLException {
reportStatusToTC(BranchStatus.PhaseOne_RDONLY);
}
}
+ } catch (SQLException xe) {
+ // Branch Report to TC: Exception
+ reportStatusToTC(BranchStatus.PhaseOne_PrepareFailed);
+ throw xe;
} catch (XAException xe) {
- // Branch Report to TC: Failed
- reportStatusToTC(BranchStatus.PhaseOne_Failed);
+ // Branch Report to TC: Exception
+ reportStatusToTC(BranchStatus.PhaseOne_PrepareFailed);
Review Comment:
When the database is MariaDB or MySQL 8.0.29 (or earlier), if an END is executed and then an exception occurs during PREPARE, with the changes introduced by this PR: after the TM makes the two-phase commit decision, the server will directly remove this branch. However, the client may continue to hold onto that connection. In this case, will the resources held by the client connection be properly released?
##########
common/src/main/java/org/apache/seata/core/model/GlobalStatus.java:
##########
@@ -235,4 +235,17 @@ public static boolean isTwoPhaseHeuristic(GlobalStatus status) {
}
return false;
}
+
+ /**
+ * Is one phase prepare failed boolean.
+ *
+ * @param status the status
+ * @return the boolean
+ */
+ public static boolean isOnePhasePrepareFailed(GlobalStatus status) {
+ if (status == GlobalStatus.RollbackRetrying) {
Review Comment:
Why is a phase‑one failure determined by the global status rather than the branch status, and why is the check limited to whether the status is "RollbackRetrying"?
##########
server/src/main/java/org/apache/seata/server/coordinator/DefaultCore.java:
##########
@@ -433,7 +433,7 @@ public boolean doGlobalRollback(GlobalSession globalSession, boolean retrying) t
branchSessions,
branchSession -> {
BranchStatus currentBranchStatus = branchSession.getStatus();
- if (currentBranchStatus == BranchStatus.PhaseOne_Failed) {
+ if (currentBranchStatus == BranchStatus.PhaseOne_Failed || currentBranchStatus == BranchStatus.PhaseOne_PrepareFailed) {
Review Comment:
ditto
##########
server/src/main/java/org/apache/seata/server/coordinator/DefaultCore.java:
##########
@@ -299,7 +299,7 @@ public boolean doGlobalCommit(GlobalSession globalSession, boolean retrying) thr
}
BranchStatus currentStatus = branchSession.getStatus();
- if (currentStatus == BranchStatus.PhaseOne_Failed) {
+ if (currentStatus == BranchStatus.PhaseOne_Failed || currentStatus == BranchStatus.PhaseOne_PrepareFailed) {
Review Comment:
ditto
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC of global rollback [incubator-seata]
Posted by "funky-eyes (via GitHub)" <gi...@apache.org>.
funky-eyes merged PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] bugfix:Branch logic is prepare Failed at phase one, need to notify TC… [incubator-seata]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #7997:
URL: https://github.com/apache/incubator-seata/pull/7997#issuecomment-3979398213
## [Codecov](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `34.21053%` with `25 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 71.62%. Comparing base ([`9b2158b`](https://app.codecov.io/gh/apache/incubator-seata/commit/9b2158b58b78ee8ad8d900d0ceaf818e0f175194?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`7a173c1`](https://app.codecov.io/gh/apache/incubator-seata/commit/7a173c1720c2a56556594a05f8e47bf5237b9c0d?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
| [Files with missing lines](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [...org/apache/seata/server/transaction/xa/XACore.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=server%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fserver%2Ftransaction%2Fxa%2FXACore.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2VydmVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9zZXJ2ZXIvdHJhbnNhY3Rpb24veGEvWEFDb3JlLmphdmE=) | 0.00% | [8 Missing :warning: ](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...org/apache/seata/tm/api/TransactionalTemplate.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=tm%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Ftm%2Fapi%2FTransactionalTemplate.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-dG0vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NlYXRhL3RtL2FwaS9UcmFuc2FjdGlvbmFsVGVtcGxhdGUuamF2YQ==) | 0.00% | [6 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...ache/seata/rm/datasource/xa/ConnectionProxyXA.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=rm-datasource%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Frm%2Fdatasource%2Fxa%2FConnectionProxyXA.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cm0tZGF0YXNvdXJjZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc2VhdGEvcm0vZGF0YXNvdXJjZS94YS9Db25uZWN0aW9uUHJveHlYQS5qYXZh) | 57.14% | [4 Missing and 2 partials :warning: ](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...java/org/apache/seata/core/model/GlobalStatus.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fcore%2Fmodel%2FGlobalStatus.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29tbW9uL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9jb3JlL21vZGVsL0dsb2JhbFN0YXR1cy5qYXZh) | 33.33% | [1 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...g/apache/seata/server/coordinator/DefaultCore.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=server%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fserver%2Fcoordinator%2FDefaultCore.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2VydmVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9zZXJ2ZXIvY29vcmRpbmF0b3IvRGVmYXVsdENvcmUuamF2YQ==) | 0.00% | [0 Missing and 2 partials :warning: ](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## 2.x #7997 +/- ##
============================================
- Coverage 71.67% 71.62% -0.05%
Complexity 876 876
============================================
Files 1310 1310
Lines 49977 50001 +24
Branches 5945 5947 +2
============================================
- Hits 35822 35815 -7
- Misses 11212 11233 +21
- Partials 2943 2953 +10
```
| [Files with missing lines](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [...seata/core/exception/TransactionExceptionCode.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fcore%2Fexception%2FTransactionExceptionCode.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc2VhdGEvY29yZS9leGNlcHRpb24vVHJhbnNhY3Rpb25FeGNlcHRpb25Db2RlLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...java/org/apache/seata/core/model/BranchStatus.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fcore%2Fmodel%2FBranchStatus.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc2VhdGEvY29yZS9tb2RlbC9CcmFuY2hTdGF0dXMuamF2YQ==) | `100.00% <100.00%> (ø)` | |
| [...java/org/apache/seata/core/model/GlobalStatus.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fcore%2Fmodel%2FGlobalStatus.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29tbW9uL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9jb3JlL21vZGVsL0dsb2JhbFN0YXR1cy5qYXZh) | `93.47% <33.33%> (-4.20%)` | :arrow_down: |
| [...g/apache/seata/server/coordinator/DefaultCore.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=server%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fserver%2Fcoordinator%2FDefaultCore.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2VydmVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9zZXJ2ZXIvY29vcmRpbmF0b3IvRGVmYXVsdENvcmUuamF2YQ==) | `73.46% <0.00%> (-0.82%)` | :arrow_down: |
| [...ache/seata/rm/datasource/xa/ConnectionProxyXA.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=rm-datasource%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Frm%2Fdatasource%2Fxa%2FConnectionProxyXA.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cm0tZGF0YXNvdXJjZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc2VhdGEvcm0vZGF0YXNvdXJjZS94YS9Db25uZWN0aW9uUHJveHlYQS5qYXZh) | `70.09% <57.14%> (-0.11%)` | :arrow_down: |
| [...org/apache/seata/tm/api/TransactionalTemplate.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=tm%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Ftm%2Fapi%2FTransactionalTemplate.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-dG0vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3NlYXRhL3RtL2FwaS9UcmFuc2FjdGlvbmFsVGVtcGxhdGUuamF2YQ==) | `55.61% <0.00%> (-1.85%)` | :arrow_down: |
| [...org/apache/seata/server/transaction/xa/XACore.java](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&filepath=server%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fseata%2Fserver%2Ftransaction%2Fxa%2FXACore.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c2VydmVyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zZWF0YS9zZXJ2ZXIvdHJhbnNhY3Rpb24veGEvWEFDb3JlLmphdmE=) | `21.42% <0.00%> (-21.43%)` | :arrow_down: |
... and [7 files with indirect coverage changes](https://app.codecov.io/gh/apache/incubator-seata/pull/7997/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
[](https://app.codecov.io/gh/apache/incubator-seata/pull/7997?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
</details>
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
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.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org