You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (JIRA)" <ji...@apache.org> on 2019/05/17 14:05:00 UTC
[jira] [Commented] (IGNITE-11671) Thin client: Client may hang when
connected to a starting server
[ https://issues.apache.org/jira/browse/IGNITE-11671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16842197#comment-16842197 ]
Aleksey Plekhanov commented on IGNITE-11671:
--------------------------------------------
[~NSAmelchev] in protocol version 1.4.0 discovery SPI is also used on handshake to send nodeId to client, so fix will no work.
I think the right way to fix issue: don't accept client connection until discovery SPI is started. I've prepared another PR ([1]) using this approach.
[1]: [https://github.com/apache/ignite/pull/6550]
> Thin client: Client may hang when connected to a starting server
> ----------------------------------------------------------------
>
> Key: IGNITE-11671
> URL: https://issues.apache.org/jira/browse/IGNITE-11671
> Project: Ignite
> Issue Type: Bug
> Components: thin client
> Reporter: Aleksey Plekhanov
> Assignee: Amelchev Nikita
> Priority: Major
> Fix For: 2.8
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> If the server start process has not completed yet, but NIO listeners already started, the client may never get a response for the handshake request.
> Exception on the server-side:
>
> {noformat}
> [client-connector-#6416%f3b837aa-d726-46b0-a58b-8cc6267c9f96%][ClientListenerProcessor] Runtime error caught during grid runnable execution: GridWorker [name=message-received-notify, igniteInstanceName=f3b837aa-d726-46b0-a58b-8cc6267c9f96, finished=false, heartbeatTs=1554209548706, hashCode=519781823, interrupted=false, runner=client-connector-#6416%f3b837aa-d726-46b0-a58b-8cc6267c9f96%]
> java.lang.NullPointerException
> at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.nextConnectionId(ClientListenerNioListener.java:334)
> at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.prepareContext(ClientListenerNioListener.java:313)
> at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onHandshake(ClientListenerNioListener.java:251)
> at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:132)
> at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:48)
> at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
> at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
> at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
> at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
> at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70){noformat}
>
> This happens because NIO listeners start before {{GridDiscoveryManager}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)