[5.0.2] LCN TM 通知 TC 失败导致数据不一致
オープン
- 主要言語
- Java
- スター
- 4.2k
- フォーク
- 1.4k
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
### 1. Bug Description
我的业务是 A,B,C三个服务,A 服务作为业务入口,依次调用 B,C 两个服务。
USER -> A
A -> B
A -> C
当TM 通知 B 或者 C commit 的前,如果这两个服务宕机,此时 A 服务并没有捕获到异常。这会导致 USER 已为接口调用成功了。
我不确定是我的用法有问题,还是目前就存在这样的问题。我理解此时用该有一定的重试机制,并且重试失败后此全局事务应该处于挂起状态,并抛出异常给业务。
### 2. Environment:
- JDK version: 1.8
- OS: macOS
- TX-LCN version: 5.0.2
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず、issue に記載されている A-to-B/C トランザクションフローを、TX-LCN 5.0.2、JDK 8、および指定された環境で再現します。commit 通知の前に停止している参加者を TM がどのように処理するかを追跡し、観測された成功レスポンスが framework の文書化された動作と一致するかを確認します。失敗の結果、retry または suspension の動作、およびビジネス側に返される exception が、検証済みの結果によってカバーされていれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- backend, distributed-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 30/100