Closed kptfh closed 4 years ago
Some reactor-client tests are failing for me.
$ mvn clean
$ mvn install
$ cd extensions/reactor-client
$ ./run_tests -h <hostname>
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< com.aerospike:aerospike-reactor-client >---------------
[INFO] Building aerospike-reactor-client 4.4.6
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ aerospike-reactor-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/bnichols/client-java/extensions/reactor-client/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ aerospike-reactor-client ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ aerospike-reactor-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ aerospike-reactor-client ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ aerospike-reactor-client ---
[INFO] Surefire report directory: /Users/bnichols/client-java/extensions/reactor-client/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.aerospike.client.reactor.BatchReactorFailTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.973 sec - in com.aerospike.client.reactor.BatchReactorFailTest
Running com.aerospike.client.reactor.BatchReactorTest
Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.41 sec - in com.aerospike.client.reactor.BatchReactorTest
Running com.aerospike.client.reactor.CrudReactorFailTest
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.089 sec - in com.aerospike.client.reactor.CrudReactorFailTest
Running com.aerospike.client.reactor.CrudReactorTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.224 sec - in com.aerospike.client.reactor.CrudReactorTest
Running com.aerospike.client.reactor.OperateReactorFailTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.638 sec - in com.aerospike.client.reactor.OperateReactorFailTest
Running com.aerospike.client.reactor.OperateReactorTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.11 sec - in com.aerospike.client.reactor.OperateReactorTest
Running com.aerospike.client.reactor.QueryReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.287 sec - in com.aerospike.client.reactor.QueryReactorFailTest
Running com.aerospike.client.reactor.QueryReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.09 sec - in com.aerospike.client.reactor.QueryReactorTest
Running com.aerospike.client.reactor.ReactorIndexTest
Tests run: 6, Failures: 6, Errors: 0, Skipped: 0, Time elapsed: 0.044 sec <<< FAILURE! - in com.aerospike.client.reactor.ReactorIndexTest
shouldFailDropIndexIfNotExists[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.012 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:720)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:483)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:472)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldCreateAndDropIndex[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.005 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:720)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:483)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:472)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldFailCreateIndexIfAlreadyExists[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.005 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:720)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:483)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:472)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldFailDropIndexIfNotExists[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.007 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NettyCommand.finish(NettyCommand.java:735)
at com.aerospike.client.async.NettyCommand.parseSingleBody(NettyCommand.java:523)
at com.aerospike.client.async.NettyCommand.readSingleHeader(NettyCommand.java:504)
at com.aerospike.client.async.NettyCommand.read(NettyCommand.java:391)
at com.aerospike.client.async.NettyCommand.access$200(NettyCommand.java:57)
at com.aerospike.client.async.NettyCommand$InboundHandler.channelRead(NettyCommand.java:938)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
shouldCreateAndDropIndex[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.005 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NettyCommand.finish(NettyCommand.java:735)
at com.aerospike.client.async.NettyCommand.parseSingleBody(NettyCommand.java:523)
at com.aerospike.client.async.NettyCommand.readSingleHeader(NettyCommand.java:504)
at com.aerospike.client.async.NettyCommand.read(NettyCommand.java:391)
at com.aerospike.client.async.NettyCommand.access$200(NettyCommand.java:57)
at com.aerospike.client.async.NettyCommand$InboundHandler.channelRead(NettyCommand.java:938)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
shouldFailCreateIndexIfAlreadyExists[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.008 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2105)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NettyCommand.finish(NettyCommand.java:735)
at com.aerospike.client.async.NettyCommand.parseSingleBody(NettyCommand.java:523)
at com.aerospike.client.async.NettyCommand.readSingleHeader(NettyCommand.java:504)
at com.aerospike.client.async.NettyCommand.read(NettyCommand.java:391)
at com.aerospike.client.async.NettyCommand.access$200(NettyCommand.java:57)
at com.aerospike.client.async.NettyCommand$InboundHandler.channelRead(NettyCommand.java:938)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Running com.aerospike.client.reactor.ReactorInfoTest
Tests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 1.02 sec <<< FAILURE! - in com.aerospike.client.reactor.ReactorInfoTest
shouldFailOnUnknownCommand[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorInfoTest) Time elapsed: 0.006 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException: Error -1: Unknown info command: [XXX])
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectErrorMatches$8(DefaultStepVerifierBuilder.java:321)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:135)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorInfoListener.onSuccess(ReactorInfoListener.java:19)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:720)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:483)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:472)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldFailOnUnknownCommand[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorInfoTest) Time elapsed: 1.008 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException$Timeout: Client timeout: iteration=1 socket=1000 total=1000 maxRetries=2 node=BB96F695D290C00 172.16.70.185 3000 inDoubt=true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectErrorMatches$8(DefaultStepVerifierBuilder.java:321)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorInfoListener.onFailure(ReactorInfoListener.java:24)
at com.aerospike.client.async.AsyncInfoCommand.onFailure(AsyncInfoCommand.java:104)
at com.aerospike.client.async.NettyCommand.notifyFailure(NettyCommand.java:876)
at com.aerospike.client.async.NettyCommand.totalTimeout(NettyCommand.java:713)
at com.aerospike.client.async.NettyCommand.timeout(NettyCommand.java:622)
at com.aerospike.client.async.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:161)
at com.aerospike.client.async.HashedWheelTimer$HashedWheelTimeout.access$700(HashedWheelTimer.java:140)
at com.aerospike.client.async.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:201)
at com.aerospike.client.async.HashedWheelTimer.run(HashedWheelTimer.java:133)
at com.aerospike.client.async.ScheduleTask.run(ScheduleTask.java:40)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Running com.aerospike.client.reactor.ScanReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.227 sec - in com.aerospike.client.reactor.ScanReactorFailTest
Running com.aerospike.client.reactor.ScanReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.123 sec - in com.aerospike.client.reactor.ScanReactorTest
Running com.aerospike.client.reactor.UdfReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.126 sec - in com.aerospike.client.reactor.UdfReactorFailTest
Running com.aerospike.client.reactor.UdfReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.019 sec - in com.aerospike.client.reactor.UdfReactorTest
Results :
Failed tests:
ReactorIndexTest.shouldCreateAndDropIndex[eventLoopType=DIRECT_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldCreateAndDropIndex[eventLoopType=NETTY_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldFailCreateIndexIfAlreadyExists[eventLoopType=DIRECT_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldFailCreateIndexIfAlreadyExists[eventLoopType=NETTY_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldFailDropIndexIfNotExists[eventLoopType=DIRECT_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldFailDropIndexIfNotExists[eventLoopType=NETTY_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorInfoTest.shouldFailOnUnknownCommand[eventLoopType=DIRECT_NIO] expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException: Error -1: Unknown info command: [XXX])
ReactorInfoTest.shouldFailOnUnknownCommand[eventLoopType=NETTY_NIO] expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException$Timeout: Client timeout: iteration=1 socket=1000 total=1000 maxRetries=2 node=BB96F695D290C00 172.16.70.185 3000 inDoubt=true)
Tests run: 78, Failures: 8, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.772 s
[INFO] Finished at: 2019-11-15T17:47:53-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project aerospike-reactor-client: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/bnichols/client-java/extensions/reactor-client/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
fixed tests. They were sensitive to the order in witch they are run
The tests are still failing. These are my steps to reproduce.
$ git checkout -b kptfh-master master
$ git pull git://github.com/kptfh/aerospike-client-java.git master
$ mvn clean
$ mvn install
$ cd extensions/reactor-client
$ ./run_tests -h <host>
Results:
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< com.aerospike:aerospike-reactor-client >---------------
[INFO] Building aerospike-reactor-client 4.4.6
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ aerospike-reactor-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/bnichols/aerospike-client-java/extensions/reactor-client/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ aerospike-reactor-client ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ aerospike-reactor-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ aerospike-reactor-client ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ aerospike-reactor-client ---
[INFO] Surefire report directory: /Users/bnichols/aerospike-client-java/extensions/reactor-client/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.aerospike.client.reactor.BatchReactorFailTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.926 sec - in com.aerospike.client.reactor.BatchReactorFailTest
Running com.aerospike.client.reactor.BatchReactorTest
Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.367 sec - in com.aerospike.client.reactor.BatchReactorTest
Running com.aerospike.client.reactor.CrudReactorFailTest
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.972 sec - in com.aerospike.client.reactor.CrudReactorFailTest
Running com.aerospike.client.reactor.CrudReactorTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.101 sec - in com.aerospike.client.reactor.CrudReactorTest
Running com.aerospike.client.reactor.OperateReactorFailTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.533 sec - in com.aerospike.client.reactor.OperateReactorFailTest
Running com.aerospike.client.reactor.OperateReactorTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.113 sec - in com.aerospike.client.reactor.OperateReactorTest
Running com.aerospike.client.reactor.QueryReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.316 sec - in com.aerospike.client.reactor.QueryReactorFailTest
Running com.aerospike.client.reactor.QueryReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.116 sec - in com.aerospike.client.reactor.QueryReactorTest
Running com.aerospike.client.reactor.ReactorIndexTest
Tests run: 6, Failures: 4, Errors: 0, Skipped: 0, Time elapsed: 0.057 sec <<< FAILURE! - in com.aerospike.client.reactor.ReactorIndexTest
shouldCreateAndDropIndex[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.013 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectComplete$4(DefaultStepVerifierBuilder.java:245)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:75)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:193)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorIndexListener.onFailure(ReactorIndexListener.java:23)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2020)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:718)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:482)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:471)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldFailCreateIndexIfAlreadyExists[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.005 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected value: false; actual value: true)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:413)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onNext(DefaultStepVerifierBuilder.java:958)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorIndexExistsListener.onSuccess(ReactorIndexExistsListener.java:20)
at com.aerospike.client.AerospikeClient$2.onSuccess(AerospikeClient.java:2168)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:718)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:482)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:471)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldCreateAndDropIndex[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.008 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectComplete$4(DefaultStepVerifierBuilder.java:245)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:75)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:193)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorIndexListener.onFailure(ReactorIndexListener.java:23)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2020)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NettyCommand.finish(NettyCommand.java:737)
at com.aerospike.client.async.NettyCommand.parseSingleBody(NettyCommand.java:526)
at com.aerospike.client.async.NettyCommand.readSingleHeader(NettyCommand.java:507)
at com.aerospike.client.async.NettyCommand.read(NettyCommand.java:391)
at com.aerospike.client.async.NettyCommand.access$200(NettyCommand.java:57)
at com.aerospike.client.async.NettyCommand$InboundHandler.channelRead(NettyCommand.java:940)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
shouldFailCreateIndexIfAlreadyExists[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorIndexTest) Time elapsed: 0.007 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectComplete$4(DefaultStepVerifierBuilder.java:245)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:75)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:193)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorIndexListener.onFailure(ReactorIndexListener.java:23)
at com.aerospike.client.AerospikeClient$1.onSuccess(AerospikeClient.java:2020)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NettyCommand.finish(NettyCommand.java:737)
at com.aerospike.client.async.NettyCommand.parseSingleBody(NettyCommand.java:526)
at com.aerospike.client.async.NettyCommand.readSingleHeader(NettyCommand.java:507)
at com.aerospike.client.async.NettyCommand.read(NettyCommand.java:391)
at com.aerospike.client.async.NettyCommand.access$200(NettyCommand.java:57)
at com.aerospike.client.async.NettyCommand$InboundHandler.channelRead(NettyCommand.java:940)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Running com.aerospike.client.reactor.ReactorInfoTest
Tests run: 4, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec <<< FAILURE! - in com.aerospike.client.reactor.ReactorInfoTest
shouldFailOnUnknownCommand[eventLoopType=DIRECT_NIO](com.aerospike.client.reactor.ReactorInfoTest) Time elapsed: 0.007 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException: Error -1: Unknown info command: [XXX])
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectErrorMatches$8(DefaultStepVerifierBuilder.java:321)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:135)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:146)
at com.aerospike.client.reactor.listeners.ReactorInfoListener.onSuccess(ReactorInfoListener.java:19)
at com.aerospike.client.async.AsyncInfoCommand.onSuccess(AsyncInfoCommand.java:97)
at com.aerospike.client.async.NioCommand.finish(NioCommand.java:718)
at com.aerospike.client.async.NioCommand.readSingleBody(NioCommand.java:482)
at com.aerospike.client.async.NioCommand.readSingleHeader(NioCommand.java:471)
at com.aerospike.client.async.NioCommand.read(NioCommand.java:409)
at com.aerospike.client.async.NioCommand.processEvent(NioCommand.java:276)
at com.aerospike.client.async.NioEventLoop.runCommands(NioEventLoop.java:205)
at com.aerospike.client.async.NioEventLoop.run(NioEventLoop.java:163)
at java.lang.Thread.run(Thread.java:748)
shouldQueryInfoCommand[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorInfoTest) Time elapsed: 0.007 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(test)" failed (expected: onNext(test); actual: onError(com.aerospike.client.AerospikeException$Parse: Error -2,1,1000,1000,2,inDoubt,BB96F695D290C00 172.16.70.185 3000: Invalid receive size: 16))
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$addExpectedValue$10(DefaultStepVerifierBuilder.java:410)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorInfoListener.onFailure(ReactorInfoListener.java:24)
at com.aerospike.client.async.AsyncInfoCommand.onFailure(AsyncInfoCommand.java:104)
at com.aerospike.client.async.NettyCommand.notifyFailure(NettyCommand.java:878)
at com.aerospike.client.async.NettyCommand.onApplicationError(NettyCommand.java:864)
at com.aerospike.client.async.NettyCommand$InboundHandler.exceptionCaught(NettyCommand.java:977)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285)
at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:850)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:364)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
shouldFailOnUnknownCommand[eventLoopType=NETTY_NIO](com.aerospike.client.reactor.ReactorInfoTest) Time elapsed: 0.008 sec <<< FAILURE!
java.lang.AssertionError: expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException$Parse: Error -2,1,1000,1000,2,inDoubt,BB96F695D290C00 172.16.70.185 3000: Invalid receive size: 0)
at reactor.test.DefaultStepVerifierBuilder.failPrefix(DefaultStepVerifierBuilder.java:2235)
at reactor.test.DefaultStepVerifierBuilder.fail(DefaultStepVerifierBuilder.java:2231)
at reactor.test.DefaultStepVerifierBuilder.lambda$expectErrorMatches$8(DefaultStepVerifierBuilder.java:321)
at reactor.test.DefaultStepVerifierBuilder$SignalEvent.test(DefaultStepVerifierBuilder.java:1973)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onSignal(DefaultStepVerifierBuilder.java:1326)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onExpectation(DefaultStepVerifierBuilder.java:1274)
at reactor.test.DefaultStepVerifierBuilder$DefaultVerifySubscriber.onError(DefaultStepVerifierBuilder.java:941)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165)
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:166)
at com.aerospike.client.reactor.listeners.ReactorInfoListener.onFailure(ReactorInfoListener.java:24)
at com.aerospike.client.async.AsyncInfoCommand.onFailure(AsyncInfoCommand.java:104)
at com.aerospike.client.async.NettyCommand.notifyFailure(NettyCommand.java:878)
at com.aerospike.client.async.NettyCommand.onApplicationError(NettyCommand.java:864)
at com.aerospike.client.async.NettyCommand$InboundHandler.exceptionCaught(NettyCommand.java:977)
at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285)
at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:850)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:364)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Running com.aerospike.client.reactor.ScanReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.231 sec - in com.aerospike.client.reactor.ScanReactorFailTest
Running com.aerospike.client.reactor.ScanReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.176 sec - in com.aerospike.client.reactor.ScanReactorTest
Running com.aerospike.client.reactor.UdfReactorFailTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.223 sec - in com.aerospike.client.reactor.UdfReactorFailTest
Running com.aerospike.client.reactor.UdfReactorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.021 sec - in com.aerospike.client.reactor.UdfReactorTest
Results :
Failed tests:
ReactorIndexTest.shouldCreateAndDropIndex[eventLoopType=DIRECT_NIO] expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
ReactorIndexTest.shouldCreateAndDropIndex[eventLoopType=NETTY_NIO] expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
ReactorIndexTest.shouldFailCreateIndexIfAlreadyExists[eventLoopType=DIRECT_NIO] expectation "expectNext(false)" failed (expected value: false; actual value: true)
ReactorIndexTest.shouldFailCreateIndexIfAlreadyExists[eventLoopType=NETTY_NIO] expectation "expectComplete" failed (expected: onComplete(); actual: onError(com.aerospike.client.AerospikeException: Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed.))
ReactorInfoTest.shouldFailOnUnknownCommand[eventLoopType=DIRECT_NIO] expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException: Error -1: Unknown info command: [XXX])
ReactorInfoTest.shouldFailOnUnknownCommand[eventLoopType=NETTY_NIO] expectation "expectErrorMatches" failed (predicate failed on exception: com.aerospike.client.AerospikeException$Parse: Error -2,1,1000,1000,2,inDoubt,BB96F695D290C00 172.16.70.185 3000: Invalid receive size: 0)
ReactorInfoTest.shouldQueryInfoCommand[eventLoopType=NETTY_NIO] expectation "expectNext(test)" failed (expected: onNext(test); actual: onError(com.aerospike.client.AerospikeException$Parse: Error -2,1,1000,1000,2,inDoubt,BB96F695D290C00 172.16.70.185 3000: Invalid receive size: 16))
Tests run: 78, Failures: 7, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.607 s
[INFO] Finished at: 2019-11-19T13:45:36-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project aerospike-reactor-client: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/bnichols/aerospike-client-java/extensions/reactor-client/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Hi @BrianNichols . Can't fix ReactorInfoTest. It passes on DIRECT_NIO and fails on NETTY_NIO. Seems to be some low level error related to the command encoding. Can you help with it?
The issues are:
1) Changing the index name on each test does not solve anything because it's illegal to have multiple indexes (with different names) on the same bin name.
2) The tests assume the index does not exist at first which may not be true. It's safer to always call dropIndex() at the beginning of each test and ignore the error if the index does not exist.
3) shouldFailCreateIndexIfAlreadyExists() does not drop the index at the end of the test. This causes the problem identified in #2.
4) There is a timing issue where dropIndex() says it's complete and then createIndex() complains that index already exists. If a sleep is added after the initial dropIndex(), the ReactorIndexTest tests run fine.
The sleep helps identify the problem, but the underlying timing problem still needs to be resolved. Either AsyncIndexTask.queryStatus() is not being called, or it returns incorrect or misinterpreted results.
Here is the current working ReactorIndexTest file (with sleep):
package com.aerospike.client.reactor;
import org.junit.Test;
import com.aerospike.client.AerospikeException;
import com.aerospike.client.query.IndexCollectionType;
import com.aerospike.client.query.IndexType;
import com.aerospike.client.reactor.util.Args;
import com.aerospike.client.util.Util;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
public class ReactorIndexTest extends ReactorTest{
public ReactorIndexTest(Args args) {
super(args);
}
private static final String indexName = "test_index";
@Test
public void shouldCreateAndDropIndex() {
reset();
Mono<Boolean> indexExists = reactorClient.indexExists(null, args.namespace, indexName);
StepVerifier.create(indexExists)
.expectNext(false)
.verifyComplete();
Mono<Void> created = reactorClient.createIndex(null, args.namespace, args.set, indexName,
args.getBinName("test"), IndexType.NUMERIC, IndexCollectionType.DEFAULT);
StepVerifier.create(created)
.verifyComplete();
indexExists = reactorClient.indexExists(null, args.namespace, indexName);
StepVerifier.create(indexExists)
.expectNext(true)
.verifyComplete();
Mono<Void> dropped = reactorClient.dropIndex(null, args.namespace, args.set, indexName);
StepVerifier.create(dropped)
.verifyComplete();
indexExists = reactorClient.indexExists(null, args.namespace, indexName);
StepVerifier.create(indexExists)
.expectNext(false)
.verifyComplete();
}
@Test
public void shouldFailCreateIndexIfAlreadyExists() {
reset();
Mono<Boolean> indexExists = reactorClient.indexExists(null, args.namespace, indexName);
StepVerifier.create(indexExists)
.expectNext(false)
.verifyComplete();
Mono<Void> created = reactorClient.createIndex(null, args.namespace, args.set, indexName,
args.getBinName("test"), IndexType.NUMERIC, IndexCollectionType.DEFAULT);
StepVerifier.create(created)
.verifyComplete();
created = reactorClient.createIndex(null, args.namespace, args.set, indexName,
args.getBinName("test"), IndexType.NUMERIC, IndexCollectionType.DEFAULT);
StepVerifier.create(created)
.expectErrorMatches(throwable -> throwable instanceof AerospikeException
&& throwable.getMessage().equals("Error 200: Create index failed: FAIL:200: Index with the same name already exists or this bin has already been indexed."))
.verify();
Mono<Void> dropped = reactorClient.dropIndex(null, args.namespace, args.set, indexName);
StepVerifier.create(dropped)
.verifyComplete();
}
@Test
public void shouldFailDropIndexIfNotExists() {
reset();
Mono<Boolean> indexExists = reactorClient.indexExists(null, args.namespace, indexName);
StepVerifier.create(indexExists)
.expectNext(false)
.verifyComplete();
Mono<Void> dropped = reactorClient.dropIndex(null, args.namespace, args.set, indexName);
StepVerifier.create(dropped)
.expectErrorMatches(throwable -> throwable instanceof AerospikeException
&& throwable.getMessage().equals("Error 201: Drop index failed: FAIL:201: Index does not exist on the system."))
.verify();
}
private void reset() {
Mono<Void> dropped = reactorClient.dropIndex(null, args.namespace, args.set, indexName);
try {
dropped.block();
}
catch (Exception e) {
}
Util.sleep(2000); // TODO: Fix timing issue so this sleep can be removed.
}
}
Thank you for detailed answer. As for know all tests passes successfully. But there is still issue with ReactorInfoTest
. It passes on DIRECT_NIO
and fails on NETTY_NIO
with
Error -2,1,1000,1000,2,inDoubt,BB9020011AC4202 127.0.0.1 3000: Invalid receive size: 16
And I can't figure out why.
The problem is the index status info command "sindex/\<namespace>/\<indexname>" returns "FAIL:201" (index not found) when an existing index has been marked inactive, but not yet fully removed. sindex-create subsequently fails because the server is expecting the index to be fully removed.
I'm discussing possible solutions with the server team. This pull request will need to be delayed until the server issue is resolved.
Quite strange. ReacorInfoTest that calls "namespaces" info command. It fails only on NETTY_NIO and passes on DIRECT_NIO. Can you have a look at ReacorInfoTest?
In last commit I tried to fix issue with
Error -2,1,1000,1000,2,inDoubt,BB9020011AC4202 127.0.0.1 3000: Invalid receive size: 16
Please check it. I'm not 100% sure that it's an appropriate fix. As for now all tests pass locally.
The tests may be passing for you, but the underlying index drop/create timing issue still exists and still occasionally fails for both DIRECT_NIO and NETTY_NIO.
The new "namespaces" info call breaks the current response size sanity check because it can return less than 22 bytes. This needs to be fixed in a way that preserves the sanity check for other responses while allowing small info responses.
I'm out next week. I will address both of these issues when I return.
Further inspection has uncovered an issue. AsyncIndexTask queryStatus() seems to be called immediately after the create/drop index command and is then repeated without delay until all nodes are complete. This will spam the server with too many status checks for large indexes.
IndexTask queryStatus() is called after a default 1 second delay and can be repeated only after another default 1 second delay.
The server timing issue is far more prevalent in AsyncIndexTask because the initial delay does not exist. I couldn't even duplicate the server timing issue using IndexTask with the default delay. Only when having no delay will IndexTask expose the server timing issue.
The next server release will contain a new sindex-exists info command that the next client release will use to eliminate to server drop/create timing issue. Index tests have also been added to the AerospikeClient unit tests. The message size check will also be fixed in the next client release.
After the next client release, a modified pull request may be considered for the release after that. I have to ask this question: Why is it necessary to support async create/drop index?
It's my understanding that most indexes are created by admins in AQL and this is not part of the normal async workflow. Async create/drop index will not run any faster than the sync version.
The only reason to have reactive methods to create/drop/status index is to eliminate the usage of blocking client at all in reactive code. I'd like to have an option to not have blocking client field at all so developer can't accidentally use blocking methods. Regarding delays (initial and on retries) it can be easily fixed.
Please, tell me if I should add this fix (delays) in code.
Go ahead and add the delays to the async index create/drop status tasks only. Drop the standalone indexExists code.
Drop the standalone indexExists code.
This part is not clear for me
Your pull request included new "AerospikeClient.indexExists()" methods. We have decided to not support those methods.
@BrianNichols updated pr. But there is an issue with inconsistency between Netty and Nio while running unknown Info command Can you check it?
In NettyCommand.java line 494, remove these lines:
if (readableBytes <= 0) {
command.dataOffset = 0;
return;
}
The server returns an empty string for an unknown info command. That size check does not work with the new async info command functionality. Empty responses are already allowed in sync and async NIO, so async Netty needs to be changed as well.
Thank you. Done. All tests have successfully passed
We will try to include this functionality in the next client release.
Hi @BrianNichols. Please, update me when you will merge the pull request so I can continue with reactive query engine. Actually I have finished reactive query engine and just waiting for this pull request to be merged
Java client 4.4.8 has been released with async index support.
We are working on integrating these changes.