5.0.1整合出现空指针异常问题
- 主要言語
- Java
- スター
- 4.2k
- フォーク
- 1.4k
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
## 5.0.1空指针异常问题
```java
java.lang.NullPointerException: null
at com.codingapi.txlcn.tc.core.checking.DefaultDTXExceptionHandler.handleNotifyGroupBusinessException(DefaultDTXExceptionHandler.java:97)
at com.codingapi.txlcn.tc.core.template.TransactionControlTemplate.notifyGroup(TransactionControlTemplate.java:159)
at com.codingapi.txlcn.tc.core.transaction.lcn.control.LcnStartingTransaction.postBusinessCode(LcnStartingTransaction.java:65)
at com.codingapi.txlcn.tc.core.DTXServiceExecutor.transactionRunning(DTXServiceExecutor.java:109)
at com.codingapi.txlcn.tc.aspect.weave.DTXLogicWeaver.runTransaction(DTXLogicWeaver.java:95)
at com.codingapi.txlcn.tc.aspect.TransactionAspect.runWithLcnTransaction(TransactionAspect.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
```
该异常时不时出现,debug进去发现是由于发生了死锁问题。(不是必现)
- org.hibernate.exception.LockTimeoutException: could not execute statement
- java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
> 麻烦作者查阅后协助排查一下,看是什么问题导致的,如果需要什么信息请回复本issue。
### TM组件不兼容
在尝试不用的TM组件发现,不同版本的TC无法注册到不同的TM上,比如5.0.1版本的TC无法注册到5.0.2版本的TM上。
请问是否有平滑升级TC/TM 组件的方案?
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
DefaultDTXExceptionHandler.java:97 から開始し、TransactionControlTemplate.java:159 と LcnStartingTransaction.java:65 を経由する notifyGroup のパスを追跡します。断続的に発生する LockTimeoutException/deadlock を再現し、5.0.1 と 5.0.2 の TC/TM 互換性の動作を比較します。null ポインター障害と互換性またはアップグレードの動作が説明され、issue に検証済みの解決策があることを完了条件とします。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, spring, sql
- 領域
- databases, distributed-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100