Description
Sometimes when I create records in very fast succession and set ReplicateTo.TWO in a 5 node cluster, I get the following exception.
com.couchbase.client.java.error.DurabilityException: Durability requirement failed: com.couchbase.client.core.message.kv.ObserveResponse cannot be cast to com.couchbase.client.core.message.cluster.GetClusterConfigResponse
at com.couchbase.client.java.CouchbaseAsyncBucket$9$1.call(CouchbaseAsyncBucket.java:410)
at com.couchbase.client.java.CouchbaseAsyncBucket$9$1.call(CouchbaseAsyncBucket.java:406)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77)
at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49)
at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49)
at rx.internal.operators.OperatorTake$1.onError(OperatorTake.java:57)
at rx.internal.operators.OperatorSkipWhile$1.onError(OperatorSkipWhile.java:54)
at rx.internal.operators.OnSubscribeRedo$3$1.onNext(OnSubscribeRedo.java:273)
at rx.internal.operators.OnSubscribeRedo$3$1.onNext(OnSubscribeRedo.java:257)
at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:224)
at rx.subjects.PublishSubject.onNext(PublishSubject.java:121)
at rx.internal.operators.OnSubscribeRedo$2$1.onError(OnSubscribeRedo.java:223)
at rx.internal.operators.OperatorScan$2.onError(OperatorScan.java:115)
at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49)
at rx.internal.operators.OperatorMerge$MergeSubscriber.innerError(OperatorMerge.java:429)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onError(OperatorMerge.java:404)
at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49)
at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:49)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:58)
at rx.internal.operators.NotificationLite.accept(NotificationLite.java:150)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:189)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.access$000(OperatorObserveOn.java:65)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:153)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: com.couchbase.client.core.message.kv.ObserveResponse cannot be cast to com.couchbase.client.core.message.cluster.GetClusterConfigResponse
at com.couchbase.client.core.message.observe.Observe$6$2.call(Observe.java:279)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
... 12 more
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: com.couchbase.client.core.message.kv.ObserveResponse.class
at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:98)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:58)
... 12 more