[ 
https://issues.apache.org/jira/browse/TINKERPOP-2132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16918483#comment-16918483
 ] 

ASF GitHub Bot commented on TINKERPOP-2132:
-------------------------------------------

thirstycrow commented on pull request #1187: TINKERPOP-2132 Trigger 
authentication early to avoid unauthorized responses
URL: https://github.com/apache/tinkerpop/pull/1187
 
 
   I met the problem that is already reported in TINKERPOP-2132. TINKERPOP-2205 
may have addressed this problem, but it would be too long to wait for the 
release of tp35. So I propose a quick fix here.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Authentication when using multiple threads fails
> ------------------------------------------------
>
>                 Key: TINKERPOP-2132
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2132
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: driver
>    Affects Versions: 3.3.2
>            Reporter: kaiyangzhang
>            Assignee: stephen mallette
>            Priority: Major
>
> *Scenes:*
>    1. Gremlin Server  Kerberos Authentication
>    2. Multithreading using the same client
>  
> {code:java}
>        DriverRemoteConnection connection = 
> DriverRemoteConnection.using(cluster,"graphbase");
>         GraphTraversalSource g = graph.traversal().withRemote(connection);
>       Thread demo1 = new Thread(new ThreadDemo1(g));
>        Thread demo2 = new Thread(new ThreadDemo1(g));
>        Thread demo3 = new Thread(new ThreadDemo1(g));
>        Thread demo4 = new Thread(new ThreadDemo1(g));
>        Thread demo5 = new Thread(new ThreadDemo1(g));
>       Thread demo6 = new Thread(new ThreadDemo1(g));
>        Thread demo7 = new Thread(new ThreadDemo1(g)); 
>        Thread demo8 = new Thread(new ThreadDemo1(g));
>        Thread demo9 = new Thread(new ThreadDemo1(g));
>        Thread demo10 = new Thread(new ThreadDemo1(g));
> {code}
>  
> *ERROR INFO*
> {code:java}
> Exception in thread "Thread-4" java.util.concurrent.CompletionException: 
> org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Failed to 
> authenticate
>  at 
> java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)
>  at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet.one(ResultSet.java:107)
>  at 
> org.apache.tinkerpop.gremlin.driver.ResultSet$1.hasNext(ResultSet.java:159)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:166)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:153)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:142)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:127)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal.nextTraverser(DriverRemoteTraversal.java:108)
>  at 
> org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep.processNextStart(RemoteStep.java:80)
>  at 
> org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
>  at 
> org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:192)
>  at com.huawei.graphbase.gremlin.ThreadDemo1.println(ThreadDemo1.java:48)
>  at com.huawei.graphbase.gremlin.ThreadDemo1.run(ThreadDemo1.java:32)
>  at java.lang.Thread.run(Thread.java:748)
>  Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: 
> Failed to authenticate
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:246)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:197)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:123)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:67)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> org.apache.tinkerpop.gremlin.driver.handler.WebSocketClientHandler.channelRead0(WebSocketClientHandler.java:94)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
>  at 
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)v[2072680]
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
>  at 
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
>  at 
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651)
>  at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:574)
>  at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:488)
>  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450)
>  at 
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
>  ... 1 more{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to