[
https://issues.apache.org/jira/browse/IGNITE-20853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nikita Amelchev updated IGNITE-20853:
-------------------------------------
Labels: ise (was: )
> [Thin client] Fix channel closing on illegal argument for cache create request
> ------------------------------------------------------------------------------
>
> Key: IGNITE-20853
> URL: https://issues.apache.org/jira/browse/IGNITE-20853
> Project: Ignite
> Issue Type: Bug
> Reporter: Nikita Amelchev
> Priority: Major
> Labels: ise
>
> The server node closes the client session if an exception occurs while
> parsing a request.
> ClientCacheCreateWithConfigurationRequest parsing fails if any
> CacheConfiguration setter's check failed.
>
> reproducer:
> {noformat}
> thinClient.createCache(new
> ClientCacheConfiguration().setName("cache1").setQueryParallelism(-1));
> {noformat}
> {noformat}
> [14:17:14,046][SEVERE][client-connector-#170%2fae9742-ba69-4fa3-a7c3-fe9b881bb04d%][ClientListenerNioListener]
> Failed to parse client request.
> java.lang.IllegalArgumentException: Ouch! Argument is invalid: Query
> parallelism must be positive.
> at
> org.apache.ignite.internal.util.GridArgumentCheck.ensure(GridArgumentCheck.java:110)
> at
> org.apache.ignite.configuration.CacheConfiguration.setQueryParallelism(CacheConfiguration.java:2176)
> at
> org.apache.ignite.internal.processors.platform.client.cache.ClientCacheConfigurationSerializer.read(ClientCacheConfigurationSerializer.java:373)
> at
> org.apache.ignite.internal.processors.platform.client.cache.ClientCacheCreateWithConfigurationRequest.<init>(ClientCacheCreateWithConfigurationRequest.java:48)
> at
> org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:574)
> at
> org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:433)
> at
> org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:179)
> at
> org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
> 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:125)
> at
> org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> [2023-11-14T14:17:14,055][INFO
> ][grid-nio-worker-thin-client-channel-0-#166%thinClient%][] Client
> disconnected
> [2023-11-14T14:17:14,057][WARN ][test-runner-#1%client.ReliabilityTest%][]
> Failed to process response: Channel is closed
> org.apache.ignite.IgniteCheckedException: Channel is closed
> at
> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7996)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:263)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:194)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:144)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:408)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:311)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$0(ReliableChannel.java:205)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:835)
> [classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:788)
> [classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:205)
> [classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:186)
> [classes/:?]
> at
> org.apache.ignite.internal.client.thin.ReliableChannel.request(ReliableChannel.java:321)
> [classes/:?]
> at
> org.apache.ignite.internal.client.thin.TcpIgniteClient.createCache(TcpIgniteClient.java:281)
> [classes/:?]
> at
> org.apache.ignite.client.ReliabilityTest.testTxWithIdIntersection(ReliabilityTest.java:447)
> [test-classes/:?]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[?:1.8.0_201]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> ~[?:1.8.0_201]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_201]
> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201]
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> [junit-4.12.jar:4.12]
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> [junit-4.12.jar:4.12]
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> [junit-4.12.jar:4.12]
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> [junit-4.12.jar:4.12]
> at
> org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2499)
> [test-classes/:?]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
> Caused by: org.apache.ignite.client.ClientConnectionException: Channel is
> closed
> at
> org.apache.ignite.internal.client.thin.TcpClientChannel.close(TcpClientChannel.java:283)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.TcpClientChannel.onDisconnected(TcpClientChannel.java:261)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnection.onDisconnected(GridNioClientConnection.java:105)
> ~[classes/:?]
> at
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onDisconnected(GridNioClientListener.java:42)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onSessionClosed(GridNioFilterChain.java:256)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedSessionClosed(GridNioFilterAdapter.java:95)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onSessionClosed(GridNioCodecFilter.java:71)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedSessionClosed(GridNioFilterAdapter.java:95)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onSessionClosed(GridNioServer.java:3708)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onSessionClosed(GridNioFilterChain.java:149)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2887)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2812)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1189)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2526)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2281)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
> ~[classes/:?]
> ... 1 more
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)