Ilya Shishkov created IGNITE-25541:
--------------------------------------

             Summary: Possible NPE in ClientTxStartRequest#process
                 Key: IGNITE-25541
                 URL: https://issues.apache.org/jira/browse/IGNITE-25541
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 2.17, 2.16
            Reporter: Ilya Shishkov


{code:NPE in 2.16}
2025-05-22 13:11:37.482 [WARN 
][client-connector-#4930][org.apache.ignite.internal.processors.odbc.ClientListenerNioListener]
 Failed to process client request 
[req=o.a.i.i.processors.platform.client.tx.ClientTxStartRequest@9bec124, 
msg=null]
org.apache.ignite.internal.processors.platform.client.IgniteClientException: 
null
        at 
org.apache.ignite.internal.processors.platform.client.tx.ClientTxStartRequest.process(ClientTxStartRequest.java:102)
 ~[ignite-core.jar]
        at 
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle0(ClientRequestHandler.java:149)
 ~[ignite-core.jar]
        at 
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:115)
 ~[ignite-core.jar]
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:213)
 [ignite-core.jar]
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
 [ignite-core.jar]
        at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
 [ignite-core.jar]
        at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
 [ignite-core.jar]
        at 
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
 [ignite-core.jar]
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) 
[ignite-core.jar]
        at 
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
 [ignite-core.jar]
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 [?:?]
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 [?:?]
        at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.NullPointerException
        at 
org.apache.ignite.internal.processors.platform.client.tx.ClientTxStartRequest.process(ClientTxStartRequest.java:85)
 ~[ignite-core.jar]
        ... 12 more
        Suppressed: java.lang.NullPointerException
                at 
org.apache.ignite.internal.processors.platform.client.tx.ClientTxStartRequest.process(ClientTxStartRequest.java:95)
 ~[ignite-core.jar]
                at 
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle0(ClientRequestHandler.java:149)
 ~[ignite-core.jar]
                at 
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:115)
 ~[ignite-core.jar]
                at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:213)
 [ignite-core.jar]
                at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
 [ignite-core.jar]
                at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
 [ignite-core.jar]
                at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
 [ignite-core.jar]
                at 
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
 [ignite-core.jar]
                at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) 
[ignite-core.jar]
                at 
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
 [ignite-core.jar]
                at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 [?:?]
                at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 [?:?]
                at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
{code}

Currently on master code is slightly changed, but it also can happen during tx 
initialization in [1, 2].
It happens, when {{IgniteTxManager#onCreate}} returns null [3] and in turn 
{{IgniteTxManager#newTx}} returns null too [4].
It can be caused by JVM pause in the middle of {{IgniteTxManager#newTx}} 
execution.


Links:
# 
https://github.com/apache/ignite/blob/0e763999219be17e71c7fac7d5f1094d5710d53e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/tx/ClientTxStartRequest.java#L63
# 
https://github.com/apache/ignite/blob/297bc9cc470c569d4c0e6ed12c734e3b92bc3d58/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientTxSupport.java#L53
# 
https://github.com/apache/ignite/blob/297bc9cc470c569d4c0e6ed12c734e3b92bc3d58/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java#L743
# 
https://github.com/apache/ignite/blob/297bc9cc470c569d4c0e6ed12c734e3b92bc3d58/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java#L725




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to