dromara / hmily

Distributed transaction solutions
https://dromara.org
Apache License 2.0
4.11k stars 1.41k forks source link

A 调用 B,B系统接收到A的请求正在执行,此时A系统宕机,后续事物没有cancel #342

Open fanlins opened 2 years ago

fanlins commented 2 years ago

Describe the bug

A 调用 B,B系统接收到A的请求正在执行,此时A系统宕机,后续A系统恢复运行,A B事物都没有进行cancel,也没有confirm。

下面是mysql中存储的事务日志:

发起者: trans_id app_name status trans_type retry version create_time update_time
-4.18837E+18 mid-trade 0 TCC 0 1 ######## ########
参与者: participant_id participant_ref_id trans_id trans_type status app_name role retry target_class target_method confirm_method cancel_method confirm_invocation cancel_invocation version create_time update_time
-4.18837E+18 -4.188E+18 TCC 0 mid-trade 1 0 xx applyPay applyPayConfirm applyPayCancel xx xx 1
-4.18837E+18 -4.188E+18 TCC 8 mid-account 3 11 xx trade tradeConfirm tradeCancel xx xx 12

Environment

checkHup commented 1 year ago

我用了2.1.2的版本出现的问题差不多,只要B系统异常了,就不会进入B系统的cancel方法