sixlei opened a new issue, #6561: URL: https://github.com/apache/incubator-seata/issues/6561
<!-- Please do not use this issue template to report security vulnerabilities but refer to our [security policy](https://github.com/seata/seata/security/policy). --> - [ ] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate. ### Ⅰ. Issue Description if there is a table like ` CREATE TABLE `t_test` ( `urid` int NOT NULL, `name` varchar(64) DEFAULT NULL, PRIMARY KEY (`urid`), UNIQUE KEY `t_test_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; ` name is a uniquekey. and There is a piece of data in the table. (1,1) 1、global Transaction execute the sql "delete from t_test where id = 1", and this transaction need rollback 2、when rollbacking,other thread execute a sql like "insert into t_test values (2,1)" 3、that will cause the rollback thread endless loop. ### Ⅱ. Describe what happened that's because the range of the code "catch (SQLIntegrityConstraintViolationException e)" is too wide in AbstractUndoLogManager#undo and rollback of business will be catched by this. that should just catch "insertUndoLogWithGlobalFinished" - JDK version(e.g. `java -version`): - Seata client/server version: 1.6.X - Database version: mysql 8.X - OS(e.g. `uname -a`): centos7 - Others: jdk8 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
