Hi everyone!
Currently attempting the Gossip Gloomers challenges. Solved 5a successfully, moved on to 5b. Implemented the new version of the code (using lin-kv
instead of in-memory storage), but now the test harness is crashing:
INFO [2025-08-29 10:56:28,672] jepsen test runner - jepsen.core Run complete, writing
INFO [2025-08-29 10:56:28,744] jepsen node n0 - maelstrom.db Tearing down n0
INFO [2025-08-29 10:56:30,623] jepsen node n0 - maelstrom.net Shutting down Maelstrom network
INFO [2025-08-29 10:56:30,624] jepsen test runner - jepsen.core Analyzing...
WARN [2025-08-29 10:56:30,735] clojure-agent-send-off-pool-9 - jepsen.checker Error while checking history:
java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:193)
at clojure.core$deref_future.invokeStatic(core.clj:2317)
at clojure.core$future_call$reify__8544.deref(core.clj:7041)
at clojure.core$deref.invokeStatic(core.clj:2337)
at clojure.core$deref.invoke(core.clj:2323)
at jepsen.tests.kafka$analysis.invokeStatic(kafka.clj:1939)
at jepsen.tests.kafka$analysis.invoke(kafka.clj:1879)
at jepsen.tests.kafka$checker$reify__19270.check(kafka.clj:2055)
at jepsen.checker$check_safe.invokeStatic(checker.clj:86)
at jepsen.checker$check_safe.invoke(checker.clj:79)
at jepsen.checker$compose$reify__11881$fn__11883.invoke(checker.clj:102)
at clojure.core$pmap$fn__8552$fn__8553.invoke(core.clj:7089)
at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
at java.base/java.lang.Thread.run(Thread.java:1447)
Caused by: java.lang.IndexOutOfBoundsException: null
at clojure.lang.PersistentVector.arrayFor(PersistentVector.java:158)
at clojure.lang.PersistentVector.nth(PersistentVector.java:162)
at clojure.lang.RT.nth(RT.java:896)
at jepsen.tests.kafka$lost_write_cases$fn__18503.invoke(kafka.clj:958)
at clojure.core$map$fn__5935.invoke(core.clj:2772)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.next(RT.java:713)
at clojure.core$next__5451.invokeStatic(core.clj:64)
at clojure.core$concat$cat__5560$fn__5561.invoke(core.clj:744)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:58)
at clojure.lang.RT.seq(RT.java:535)
at clojure.core$seq__5467.invokeStatic(core.clj:139)
at clojure.core$seq__5467.invoke(core.clj:139)
at jepsen.tests.kafka$lost_write_cases.invokeStatic(kafka.clj:925)
at jepsen.tests.kafka$lost_write_cases.invoke(kafka.clj:896)
at jepsen.tests.kafka$analysis$fn__19241.invoke(kafka.clj:1914)
... 6 common frames omitted
INFO [2025-08-29 10:56:31,203] jepsen test runner - jepsen.core Analysis complete
This happens with any test run parameters (including the 5a ones).
I’m sure this is somehow cause by my changes, but I have no idea where to begin to investigate.
Any hints? Please avoid sharing the full solution.