apache / apache/incubator-seata-samples
OrderServer回滚,StorageServer没有回滚
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 2k
- PR merge metrics
- No merged PRs in 30d
Description
**前提**
seata-server部署在windows上(db模式),使用[springcloud-eureka-feign-mybatis-seata demo](https://github.com/seata/seata-samples/tree/master/springcloud-eureka-feign-mybatis-seata),在StorageServer.decrease添加Thread.sleep(2000)模拟请求超时。使用jmeter,开启10个线程,每个线程调用2遍OrderServer order/create接口。
**现象**
由于超时order表全部回滚,没有产生数据(正常)
storage表出现出现扣库存(异常)
branch_table,lock_table,undo_log 都有一行数据,表明事务没正常回滚(异常)
global_table 表为空。
可多次复现。
Contributor guide
Research direction
Reproduce the issue with the springcloud-eureka-feign-mybatis-seata demo, deploying seata-server on Windows in db mode. Start by inspecting StorageServer.decrease and the transaction state in order, storage, branch_table, lock_table, undo_log, and global_table while running the described JMeter load. Done means timed-out requests roll back storage changes and leave no stale transaction rows.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend, databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100