Details
-
Improvement
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
Description
Running the java multi cluster client in clojure through the java interop feature. Basically the same code but in clojure as this: https://github.com/couchbaselabs/multi-cluster-java
This is the code snippet I am running:
(defn client
|
"A client for a single compare-and-set register" |
[cluster bucket]
|
(reify client/Client
|
(setup! [_ test node]
|
(info node "Creating client") |
(let [obj (.put (. JsonObject create) "value" 0) |
doc (. JsonDocument create "jepsen-test-document" obj) |
clusterset1 (new HashSet #{"n1" "n2" "n3"}) |
clusterset2 (new HashSet #{"n4" "n5" "n6"}) |
clusterspec1 (. ClusterSpec create clusterset1)
|
clusterspec2 (. ClusterSpec create clusterset2)
|
clusterlist (java.util.Arrays/asList (into-array [clusterspec1 clusterspec2]))
|
coord (. Coordinators isolated clusterlist 3000) |
opts (.failureInterval (.maxFailedOperations (. TrafficMonitoringFailureDetector options) 5) 60) |
detector (. FailureDetectors trafficMonitoring coord opts)
|
mcc (.authenticate (new MultiClusterClient coord detector) "admin123" "pass123") |
bucket (.openBucket mcc "default" "")] |
(Thread/sleep 5000) |
(info "upserted:" (.upsert bucket doc (timeout) (timeunits))) |
(info node "Client created") |
(client cluster bucket)))
|
Fails at the bottom on upsert
stack trace:
java.lang.IllegalStateException: Only AsyncSubject is allowed with deferAndWatch (is Observable)
|
at com.couchbase.client.java.util.OnSubscribeDeferAndWatch.call(OnSubscribeDeferAndWatch.java:92) ~[couchbase-java-client-2.4.8-mca-dp1.jar:na] |
at com.couchbase.client.java.util.OnSubscribeDeferAndWatch.call(OnSubscribeDeferAndWatch.java:57) ~[couchbase-java-client-2.4.8-mca-dp1.jar:na] |
at rx.Observable.unsafeSubscribe(Observable.java:10346) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.Observable.subscribe(Observable.java:10442) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.Observable.subscribe(Observable.java:10409) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:444) ~[rxjava-1.2.10.jar:1.2.10] |
at rx.observables.BlockingObservable.single(BlockingObservable.java:341) ~[rxjava-1.2.10.jar:1.2.10] |
at com.couchbase.client.mc.BucketProxy.upsert(BucketProxy.java:103) ~[multi-cluster-java-0.2.0.jar:na] |
at couchbase.core$client$reify__573.setup_BANG_(core.clj:228) ~[na:na] |
at jepsen.core$run_case_BANG_$fn__3373.invoke(core.clj:287) ~[jepsen-0.1.6-SNAPSHOT.jar:na] |
at clojure.lang.AFn.applyToHelper(AFn.java:154) ~[clojure-1.8.0.jar:na] |
at clojure.lang.AFn.applyTo(AFn.java:144) ~[clojure-1.8.0.jar:na] |
at clojure.core$apply.invokeStatic(core.clj:646) ~[clojure-1.8.0.jar:na] |
at clojure.core$apply.invoke(core.clj:641) ~[clojure-1.8.0.jar:na] |
at jepsen.util$fcatch$wrapper__945.doInvoke(util.clj:28) ~[jepsen-0.1.6-SNAPSHOT.jar:na] |
at clojure.lang.RestFn.invoke(RestFn.java:408) ~[clojure-1.8.0.jar:na] |
at jepsen.util$real_pmap$launcher__950$fn__951.invoke(util.clj:48) ~[jepsen-0.1.6-SNAPSHOT.jar:na] |
at clojure.core$binding_conveyor_fn$fn__4676.invoke(core.clj:1938) ~[clojure-1.8.0.jar:na] |
at clojure.lang.AFn.call(AFn.java:18) ~[clojure-1.8.0.jar:na] |
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_131] |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_131] |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_131] |
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131] |
using
multi-cluster-java-0.2.0.jar
couchbase-core-io-1.4.8-mca-dp1.jar
couchbase-java-client-2.4.8-mca-dp1.jar
rxjava-1.2.10.jar