[
https://issues.apache.org/jira/browse/TINKERPOP-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17526729#comment-17526729
]
Rusi Popov commented on TINKERPOP-2735:
---------------------------------------
In a sessioned connection, when executing:
{code}
g.tx().commit();
g.close();
{code}
Logged are the messages (empty lines added for readability):
{code}
Received message=RequestMessage{,
requestId=096ab06e-be17-49f5-9579-f0d84a6a65ee, op='bytecode',
processor='session', args={gremlin=[[tx(commit)], []], aliases={g=g},
session=77e670fa-c0d0-4f33-8496-b3dee45c4b76, manageTransaction=false,
maintainStateAfterException=false}}
Authenticated user: ariadne-public
Session ID: 77e670fa-c0d0-4f33-8496-b3dee45c4b76
User ariadne-public with address 127.0.0.1:53972 requested: [[tx(commit)], []]
Signalled closing of connection pool on Host{address=localhost/127.0.0.1:8182,
hostUri=wss://localhost:8182/gremlin} with core size of 1
Received message=RequestMessage{,
requestId=56d27616-8fe6-40d5-a54c-3dce2fc6af6f, op='close',
processor='session', args={session=77e670fa-c0d0-4f33-8496-b3dee45c4b76,
manageTransaction=false, force=false, maintainStateAfterException=false}}
Authenticated user: ariadne-public
Session ID: 77e670fa-c0d0-4f33-8496-b3dee45c4b76
IllegalStateException: Unrecognized content of the 'gremlin' argument in the
request
org.apache.tinkerpop.gremlin.server.handler.SessionException:
IllegalStateException: Unrecognized content of the 'gremlin' argument in the
request
at
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.handleException(AbstractSession.java:360)
at
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:178)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:750)
Caused by: java.lang.IllegalStateException: Unrecognized content of the
'gremlin' argument in the request
at
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.getMetricsTimer(AbstractSession.java:844)
at
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.process(AbstractSession.java:259)
at
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:155)
... 5 more
{code}
When closing the connection directly, i.e. calling just g.close() without
calling first g.tx().commit(), then "Unrecognized content of the 'gremlin'
argument in the request" is not reported. Maybe g.tx().commit() alters the
connection's status so the 'gremlin' parameter is not provided in g.close()
> IllegalStateException: Unrecognized content of the 'gremlin' argument... on
> connection close
> --------------------------------------------------------------------------------------------
>
> Key: TINKERPOP-2735
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2735
> Project: TinkerPop
> Issue Type: Bug
> Components: driver, server
> Affects Versions: 3.5.3
> Reporter: Rusi Popov
> Priority: Minor
>
> TinkerPop 3.5.2 Java driver
> Closing a multi-task web-socket + binary serializer session reports a warning
> and the exceptions:
> {code}
> WARNING: IllegalStateException: Unrecognized content of the 'gremlin'
> argument in the request
> org.apache.tinkerpop.gremlin.server.handler.SessionException:
> IllegalStateException: Unrecognized content of the 'gremlin' argument in the
> request
> at
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.handleException(AbstractSession.java:360)
> at
> org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:178)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 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:750)
> Caused by: java.lang.IllegalStateException: Unrecognized content of the
> 'gremlin' argument in the request
> at
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.getMetricsTimer(AbstractSession.java:844)
> at
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.process(AbstractSession.java:259)
> at
> org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:155)
> ... 5 more
> Apr 13, 2022 8:14:15 AM org.apache.tinkerpop.gremlin.driver.Connection
> shutdown
> WARNING: Encountered an error trying to close connection on
> 3cc856a1-0f91-49f4-9863-9279272fd079 - force closing - server will close
> session on shutdown or expiration.
> java.util.concurrent.ExecutionException:
> org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Unrecognized
> content of the 'gremlin' argument in the request
> at
> java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at
> java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
> at
> org.apache.tinkerpop.gremlin.driver.Connection.shutdown(Connection.java:319)
> at
> org.apache.tinkerpop.gremlin.driver.Connection.closeAsync(Connection.java:195)
> at
> org.apache.tinkerpop.gremlin.driver.ConnectionPool.killAvailableConnections(ConnectionPool.java:272)
> at
> org.apache.tinkerpop.gremlin.driver.ConnectionPool.closeAsync(ConnectionPool.java:256)
> at
> org.apache.tinkerpop.gremlin.driver.Client$SessionedClient.closeAsync(Client.java:858)
> at org.apache.tinkerpop.gremlin.driver.Client.close(Client.java:409)
> at
> net.mdatools.ariadne.integration.tinkerpop.AriadneClient.close(AriadneClient.java:145)
> at
> net.mdatools.ariadne.application.demo.server.ClientServerTraversalTest.tearDown(ClientServerTraversalTest.java:147)
> 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:59)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
> at
> org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
> at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> at
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
> at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
> at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
> at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
> Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException:
> Unrecognized content of the 'gremlin' argument in the request
> at
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:245)
> at
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:200)
> at
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:126)
> at
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:68)
> at
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
> at
> io.netty.handler.codec.http.websocketx.Utf8FrameValidator.channelRead(Utf8FrameValidator.java:82)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
> at
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526)
> at
> io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1275)
> at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1322)
> at
> io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)
> at
> io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440)
> at
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
> at
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at java.lang.Thread.run(Thread.java:750)
> {code}
> Cause: The close request sent to the server contains gremlin=null argument,
> which org.apache.tinkerpop.gremlin.server.Context.determineRequestContents()
> recognizes as UNKNOWN request content type.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)