[
https://issues.apache.org/jira/browse/IGNITE-20853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nikita Amelchev updated IGNITE-20853:
-------------------------------------
Description:
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}
was:
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}
[2023-11-14T13:13:33,428][ERROR][client-connector-#240%controller.UserBySubjectIdTest0%][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)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.configuration.CacheConfiguration.setQueryParallelism(CacheConfiguration.java:2176)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheConfigurationSerializer.read(ClientCacheConfigurationSerializer.java:373)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheCreateWithConfigurationRequest.<init>(ClientCacheCreateWithConfigurationRequest.java:48)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:574)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:433)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:179)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_201]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_201]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
[2023-11-14T13:13:33,431][ERROR][client-connector-#349%controller.UserBySubjectIdTest1%][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)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.configuration.CacheConfiguration.setQueryParallelism(CacheConfiguration.java:2176)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheConfigurationSerializer.read(ClientCacheConfigurationSerializer.java:373)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheCreateWithConfigurationRequest.<init>(ClientCacheCreateWithConfigurationRequest.java:48)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:574)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:433)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:179)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_201]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_201]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
[2023-11-14T13:13:33,462][ERROR][client-connector-#352%controller.UserBySubjectIdTest1%][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)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.configuration.CacheConfiguration.setQueryParallelism(CacheConfiguration.java:2176)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheConfigurationSerializer.read(ClientCacheConfigurationSerializer.java:373)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheCreateWithConfigurationRequest.<init>(ClientCacheCreateWithConfigurationRequest.java:48)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:574)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.decode(ClientMessageParser.java:433)
~[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:179)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
[ignite-core-16.0.0-SNAPSHOT.jar:16.0.0-SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_201]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_201]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
org.apache.ignite.client.ClientConnectionException: Channel is closed
at
org.apache.ignite.internal.client.thin.TcpClientChannel.convertException(TcpClientChannel.java:482)
at
org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:421)
at
org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:311)
at
org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$0(ReliableChannel.java:205)
at
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:845)
at
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:788)
at
org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:205)
at
org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:186)
at
org.apache.ignite.internal.client.thin.ReliableChannel.request(ReliableChannel.java:321)
at
org.apache.ignite.internal.client.thin.TcpIgniteClient.createCache(TcpIgniteClient.java:281)
at
com.sbt.sbergrid.admin_ui.controller.UserBySubjectIdTest.testSqlUserBySubjectId(UserBySubjectIdTest.java:51)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2499)
at java.lang.Thread.run(Thread.java:748)
Suppressed: org.apache.ignite.client.ClientConnectionException: Channel
is closed
... 21 more
Caused by: org.apache.ignite.client.ClientConnectionException: Channel
is closed
at
org.apache.ignite.internal.client.thin.TcpClientChannel.close(TcpClientChannel.java:283)
at
org.apache.ignite.internal.client.thin.TcpClientChannel.onDisconnected(TcpClientChannel.java:261)
at
org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnection.onDisconnected(GridNioClientConnection.java:105)
at
org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onDisconnected(GridNioClientListener.java:42)
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onSessionClosed(GridNioFilterChain.java:256)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedSessionClosed(GridNioFilterAdapter.java:95)
at
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onSessionClosed(GridNioCodecFilter.java:71)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedSessionClosed(GridNioFilterAdapter.java:95)
at
org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter.onSessionClosed(GridNioSslFilter.java:293)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedSessionClosed(GridNioFilterAdapter.java:95)
at
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onSessionClosed(GridNioServer.java:3708)
at
org.apache.ignite.internal.util.nio.GridNioFilterChain.onSessionClosed(GridNioFilterChain.java:149)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2887)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.close(GridNioServer.java:2812)
at
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1189)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2526)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2281)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
... 1 more
Suppressed: org.apache.ignite.client.ClientConnectionException: Channel
is closed
... 21 more
{noformat}
> [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
>
> 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)