Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-1674

Address race conditions in InternalStreamConnection

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.0.0
    • Affects Version/s: None
    • Component/s: Connection Management
    • Labels:
      None

      Test: "com.mongodb.async.client.SmokeTestSpecification.should handle common administrative scenarios without error"

      Here's one:

      com.mongodb.MongoTimeoutException: Callback timed out
      	at com.mongodb.async.FutureResultCallback.get(FutureResultCallback.java:74)
      	at com.mongodb.async.client.SmokeTestSpecification.run(SmokeTestSpecification.groovy:177)
      	at com.mongodb.async.client.SmokeTestSpecification.should handle common administrative scenarios without error(SmokeTestSpecification.groovy:108)
      

      and another:

      com.mongodb.MongoCommandException: Command failed with error 13140: 'exception: Don't recognize source or target DB' on server localhost:27018. The full response is { "code" : 13140, "ok" : 0.0, "errmsg" : "exception: Don't recognize source or target DB" }
      	at com.mongodb.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:75)
      	at com.mongodb.connection.CommandResultCallback.callCallback(CommandResultCallback.java:51)
      	at com.mongodb.connection.CommandResultCallback.callCallback(CommandResultCallback.java:29)
      	at com.mongodb.connection.CommandResultBaseCallback.callCallback(CommandResultBaseCallback.java:39)
      	at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:48)
      	at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:23)
      	at com.mongodb.connection.DefaultConnectionPool$PooledConnection$2.onResult(DefaultConnectionPool.java:417)
      	at com.mongodb.connection.DefaultConnectionPool$PooledConnection$2.onResult(DefaultConnectionPool.java:411)
      	at com.mongodb.connection.UsageTrackingInternalConnection$3.onResult(UsageTrackingInternalConnection.java:127)
      	at com.mongodb.connection.UsageTrackingInternalConnection$3.onResult(UsageTrackingInternalConnection.java:123)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:53)
      	at com.mongodb.connection.InternalStreamConnection.processPendingResults(InternalStreamConnection.java:528)
      	at com.mongodb.connection.InternalStreamConnection.processPendingReads(InternalStreamConnection.java:424)
      	at com.mongodb.connection.InternalStreamConnection.access$1300(InternalStreamConnection.java:55)
      	at com.mongodb.connection.InternalStreamConnection$3.onResult(InternalStreamConnection.java:460)
      	at com.mongodb.connection.InternalStreamConnection$3.onResult(InternalStreamConnection.java:449)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.onSuccess(InternalStreamConnection.java:386)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.access$900(InternalStreamConnection.java:341)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback$ResponseBodyCallback.onResult(InternalStreamConnection.java:408)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback$ResponseBodyCallback.onResult(InternalStreamConnection.java:392)
      	at com.mongodb.connection.InternalStreamConnection$2.completed(InternalStreamConnection.java:273)
      	at com.mongodb.connection.InternalStreamConnection$2.completed(InternalStreamConnection.java:270)
      	at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:211)
      	at com.mongodb.connection.InternalStreamConnection.fillAndFlipBuffer(InternalStreamConnection.java:270)
      	at com.mongodb.connection.InternalStreamConnection.access$700(InternalStreamConnection.java:55)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.onResult(InternalStreamConnection.java:364)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.onResult(InternalStreamConnection.java:341)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:53)
      	at com.mongodb.connection.InternalStreamConnection$2.completed(InternalStreamConnection.java:273)
      	at com.mongodb.connection.InternalStreamConnection$2.completed(InternalStreamConnection.java:270)
      	at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:211)
      	at com.mongodb.connection.netty.NettyStream.handleReadResponse(NettyStream.java:241)
      	at com.mongodb.connection.netty.NettyStream.access$700(NettyStream.java:60)
      	at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:272)
      	at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:269)
      	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
      	at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:150)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
      	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
      	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
      	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
      	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
      	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
      	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
      	at java.lang.Thread.run(Thread.java:662)
      

            Assignee:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Reporter:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: