diff --git a/changes/1.5.0.md b/changes/1.5.0.md index 25f6747b4e2..88dd56dbc94 100644 --- a/changes/1.5.0.md +++ b/changes/1.5.0.md @@ -74,10 +74,10 @@ Seata 是一款开源的分布式事务解决方案,提供高性能和简单 - [[#4162](https://github.com/seata/seata/pull/4162)] 修复Redis注册中心内置配置名导致启动报错问题 - [[#4165](https://github.com/seata/seata/pull/4165)] 修复 `StringUtils.toString(obj)` 当obj是基本数据数组时,抛出`ClassCastException`的问题 - [[#4169](https://github.com/seata/seata/pull/4169)] 修复xa模式originalConnection已关闭,导致二阶段无法执行 + - [[#4177](https://github.com/seata/seata/pull/4177)] 修复当事务超时且刚好tm发起commit决议时,意外造成全局锁释放的问题 - [[#4174](https://github.com/seata/seata/pull/4174)] 修复删除 undolog 时连接关闭问题 - ### optimize: - [[#4163](https://github.com/seata/seata/pull/4163)] 完善开发者奉献文档 - [[#3678](https://github.com/seata/seata/pull/3678)] 补充遗漏的配置及新版本pr登记md文件 diff --git a/changes/en-us/1.5.0.md b/changes/en-us/1.5.0.md index 1b7f32d2593..9c3848cbced 100644 --- a/changes/en-us/1.5.0.md +++ b/changes/en-us/1.5.0.md @@ -72,6 +72,7 @@ - [[#4162](https://github.com/seata/seata/pull/4162)] fix correct built-in properties for redis registry - [[#4165](https://github.com/seata/seata/pull/4165)] fix `StringUtils.toString(obj)` throw `ClassCastException` when the obj is primitive data array - [[#4169](https://github.com/seata/seata/pull/4169)] fix xa mode originalConnection has been closed, cause PhaseTwo fail to execute + - [[#4177](https://github.com/seata/seata/pull/4177)] fix the problem of accidentally releasing the global lock - [[#4174](https://github.com/seata/seata/pull/4174)] fix delete undo log connection already closed diff --git a/server/src/main/java/io/seata/server/coordinator/DefaultCore.java b/server/src/main/java/io/seata/server/coordinator/DefaultCore.java index c8d0c83b8d4..00d49c03097 100644 --- a/server/src/main/java/io/seata/server/coordinator/DefaultCore.java +++ b/server/src/main/java/io/seata/server/coordinator/DefaultCore.java @@ -150,9 +150,9 @@ public GlobalStatus commit(String xid) throws TransactionException { // just lock changeStatus boolean shouldCommit = SessionHolder.lockAndExecute(globalSession, () -> { - // Highlight: Firstly, close the session, then no more branch can be registered. - globalSession.closeAndClean(); if (globalSession.getStatus() == GlobalStatus.Begin) { + // Highlight: Firstly, close the session, then no more branch can be registered. + globalSession.closeAndClean(); if (globalSession.canBeCommittedAsync()) { globalSession.asyncCommit(); return false;