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)