codingapi / codingapi/tx-lcn

5.0.1整合出现空指针异常问题

Abierto
#353 12 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
4.2k
Forks
1.4k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## 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 组件的方案?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comience con DefaultDTXExceptionHandler.java:97 y siga la ruta de notifyGroup a través de TransactionControlTemplate.java:159 y LcnStartingTransaction.java:65. Reproduzca la LockTimeoutException/el deadlock intermitente y compare el comportamiento de compatibilidad de TC/TM entre 5.0.1 y 5.0.2. Se considera terminado cuando se hayan explicado el fallo de puntero nulo y el comportamiento de compatibilidad o actualización, y el issue tenga una resolución verificada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, spring, sql
Área
databases, distributed-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.