easyswb opened a new issue, #8033: URL: https://github.com/apache/incubator-seata/issues/8033
### Check Ahead - [x] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate. - [x] I am willing to try to fix this bug myself. ### Ⅰ. Issue Description sqlServer根据sourceId进行行锁的关键词拼接,sqlServer需要用到;来进行参数分割, 拼接完成的key没有进行脱敏,取出或替换掉; 后面进行锁释放时又根据;进行拆分导致整体的key被拆分为两个,从而使锁不释放, 示例url:jdbc:sqlserver://127.0.0.1:1433;databaseName=lxk;encrypt=false;trustServerCertificate=true; 构建完成的key=SEATA_ROW_LOCK_jdbc:sqlserver://127.0.0.1:1433:1433;databaseName=_lxk^^^BPM_ACT_RU_TASK^^^123 行锁删除时根据关键词;拆分: 分别删除key: SEATA_ROW_LOCK_jdbc:sqlserver://127.0.0.1:1433:1433 和 databaseName=_lxk^^^BPM_ACT_RU_TASK^^^123 行锁数据残留导致行锁不释放。 需要更改点: org.apache.seata.core.lock.AbstractLocker#getRowKey 处理完成后,字符串进行;.replace(ROW_LOCK_KEY_SPLIT_CHAR,LOCK_SPLIT) ### Ⅱ. Describe what happened _No response_ ### Ⅲ. Describe what you expected to happen _No response_ ### Ⅳ. How to reproduce it (as minimally and precisely as possible) _No response_ ### Ⅴ. Anything else we need to know? _No response_ ### Ⅵ. Environment _No response_ -- 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]
