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]

Reply via email to