[SOLVED] help debug error output from maelstrom unique-id

hi! i know this is an old topic now but can anyone please look at the error log below? i am not familiar with Clojure/Java ecosystem.

fwiw the logs for the maelstrom nodes are empty

2023-03-14 15:27:50,487{GMT}	INFO	[jepsen test runner] jepsen.core: Command line:
lein run test -w unique-ids --bin /Users/David/git-shit/flystrom/cmd/unique-id/uniqueid --time-limit 30 --rate 1000 --node-count 3 --availability total --nemesis partition
2023-03-14 15:27:50,615{GMT}	INFO	[jepsen test runner] jepsen.core: Running test:
{:args []
 :remote
 #jepsen.control.retry.Remote{:remote #jepsen.control.scp.Remote{:cmd-remote #jepsen.control.sshj.SSHJRemote{:concurrency-limit 6,
                                                                                                             :conn-spec nil,
                                                                                                             :client nil,
                                                                                                             :semaphore nil},
                                                                 :conn-spec nil},
                              :conn nil}
 :log-net-send false
 :node-count 3
 :availability :total
 :max-txn-length 4
 :concurrency 3
 :db
 #object[maelstrom.db$db$reify__16142
         "0x6ba3eee9"
         "maelstrom.db$db$reify__16142@6ba3eee9"]
 :max-writes-per-key 16
 :leave-db-running? false
 :name "unique-ids"
 :logging-json? false
 :start-time
 #object[org.joda.time.DateTime "0x3fe8d57a" "2023-03-14T15:27:50.429+08:00"]
 :nemesis-interval 10
 :net
 #object[maelstrom.net$jepsen_net$reify__15251
         "0x36573ec5"
         "maelstrom.net$jepsen_net$reify__15251@36573ec5"]
 :client
 #object[maelstrom.workload.unique_ids$client$reify__20074
         "0x10c26161"
         "maelstrom.workload.unique_ids$client$reify__20074@10c26161"]
 :barrier
 #object[java.util.concurrent.CyclicBarrier
         "0x1ef6977b"
         "java.util.concurrent.CyclicBarrier@1ef6977b"]
 :log-stderr false
 :pure-generators true
 :ssh {:dummy? true}
 :rate 1000.0
 :checker
 #object[jepsen.checker$compose$reify__11881
         "0x674cd2da"
         "jepsen.checker$compose$reify__11881@674cd2da"]
 :argv
 ("test"
  "-w"
  "unique-ids"
  "--bin"
  "/Users/David/git-shit/flystrom/cmd/unique-id/uniqueid"
  "--time-limit"
  "30"
  "--rate"
  "1000"
  "--node-count"
  "3"
  "--availability"
  "total"
  "--nemesis"
  "partition")
 :nemesis
 (jepsen.nemesis.ReflCompose
  {:fm {:start-partition 0,
        :stop-partition 0,
        :kill 1,
        :start 1,
        :pause 1,
        :resume 1},
   :nemeses [#unprintable "jepsen.nemesis.combined$partition_nemesis$reify__16416@686279e0"
             #unprintable "jepsen.nemesis.combined$db_nemesis$reify__16397@6b28d4e4"]})
 :nodes ["n0" "n1" "n2"]
 :test-count 1
 :latency {:mean 0, :dist :constant}
 :bin "/Users/David/git-shit/flystrom/cmd/unique-id/uniqueid"
 :generator
 (jepsen.generator.TimeLimit
  {:limit 30000000000,
   :cutoff nil,
   :gen (jepsen.generator.Any
         {:gens [(jepsen.generator.OnThreads
                  {:f #{:nemesis},
                   :context-filter #object[jepsen.generator.context$make_thread_filter$lazy_filter__9167
                                           "0x17734113"
                                           "jepsen.generator.context$make_thread_filter$lazy_filter__9167@17734113"],
                   :gen (jepsen.generator.Stagger
                         {:dt 20000000000,
                          :next-time nil,
                          :gen (jepsen.generator.FlipFlop
                                {:gens [#object[jepsen.nemesis.combined$partition_package$start__16420
                                                "0x27aa700"
                                                "jepsen.nemesis.combined$partition_package$start__16420@27aa700"]
                                        ({:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         {:type :info,
                                          :f :stop-partition,
                                          :value nil}
                                         ...)],
                                 :i 0})})})
                 (jepsen.generator.OnThreads
                  {:f #jepsen.generator.context.AllBut{:element :nemesis},
                   :context-filter #object[jepsen.generator.context$make_thread_filter$lazy_filter__9167
                                           "0x704c3ca2"
                                           "jepsen.generator.context$make_thread_filter$lazy_filter__9167@704c3ca2"],
                   :gen (jepsen.generator.Stagger
                         {:dt 2000000,
                          :next-time nil,
                          :gen (jepsen.generator.Repeat
                                {:remaining -1, :gen {:f :generate}})})})]})})
 :log-net-recv false
 :os
 #object[maelstrom.net$jepsen_os$reify__15254
         "0x7d3a9061"
         "maelstrom.net$jepsen_os$reify__15254@7d3a9061"]
 :time-limit 30
 :workload :unique-ids
 :consistency-models [:strict-serializable]
 :topology :grid}

2023-03-14 15:27:53,040{GMT}	INFO	[jepsen node n0] maelstrom.net: Starting Maelstrom network
2023-03-14 15:27:53,042{GMT}	INFO	[jepsen test runner] jepsen.db: Tearing down DB
2023-03-14 15:27:53,045{GMT}	INFO	[jepsen test runner] jepsen.db: Setting up DB
2023-03-14 15:27:53,046{GMT}	INFO	[jepsen node n1] maelstrom.db: Setting up n1
2023-03-14 15:27:53,046{GMT}	INFO	[jepsen node n2] maelstrom.db: Setting up n2
2023-03-14 15:27:53,047{GMT}	INFO	[jepsen node n1] maelstrom.process: launching /Users/David/git-shit/flystrom/cmd/unique-id/uniqueid []
2023-03-14 15:27:53,047{GMT}	INFO	[jepsen node n2] maelstrom.process: launching /Users/David/git-shit/flystrom/cmd/unique-id/uniqueid []
2023-03-14 15:27:53,050{GMT}	INFO	[jepsen node n0] maelstrom.service: Starting services: (lin-kv lin-tso lww-kv seq-kv)
2023-03-14 15:27:53,053{GMT}	INFO	[jepsen node n0] maelstrom.db: Setting up n0
2023-03-14 15:27:53,054{GMT}	INFO	[jepsen node n0] maelstrom.process: launching /Users/David/git-shit/flystrom/cmd/unique-id/uniqueid []
2023-03-14 15:28:03,092{GMT}	INFO	[jepsen node n2] maelstrom.db: Tearing down n2
2023-03-14 15:28:03,092{GMT}	INFO	[jepsen node n0] maelstrom.db: Tearing down n0
2023-03-14 15:28:03,092{GMT}	INFO	[jepsen node n1] maelstrom.db: Tearing down n1
2023-03-14 15:28:04,097{GMT}	INFO	[jepsen node n0] maelstrom.net: Shutting down Maelstrom network
2023-03-14 15:28:04,101{GMT}	WARN	[jepsen test runner] jepsen.core: Test crashed!
clojure.lang.ExceptionInfo: Node n0 crashed with exit status 0. Before crashing, it wrote to STDOUT:



And to STDERR:



Full STDERR logs are available in /Users/David/maelstrom/store/unique-ids/20230314T152750.429+0800/node-logs/n0.log
	at slingshot.support$stack_trace.invoke(support.clj:201)
	at maelstrom.process$stop_node_BANG_.invokeStatic(process.clj:239)
	at maelstrom.process$stop_node_BANG_.invoke(process.clj:217)
	at maelstrom.db$db$reify__16142.teardown_BANG_(db.clj:75)
	at jepsen.db$fn__8744$G__8725__8748.invoke(db.clj:12)
	at jepsen.db$fn__8744$G__8724__8753.invoke(db.clj:12)
	at clojure.core$partial$fn__5908.invoke(core.clj:2642)
	at jepsen.control$on_nodes$fn__8599.invoke(control.clj:314)
	at clojure.lang.AFn.applyToHelper(AFn.java:154)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:671)
	at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at dom_top.core$real_pmap_helper$build_thread__211$fn__212.invoke(core.clj:163)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at clojure.lang.AFn.applyToHelper(AFn.java:156)
	at clojure.lang.RestFn.applyTo(RestFn.java:132)
	at clojure.core$apply.invokeStatic(core.clj:671)
	at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
	at clojure.lang.RestFn.invoke(RestFn.java:397)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.lang.Thread.run(Thread.java:1589)

and this is the implementation

package main

import (
	"fmt"
	"time"

	maelstrom "github.com/jepsen-io/maelstrom/demo/go"
)

func main() {
	node := maelstrom.NewNode()

	node.Handle("generate", func(msg maelstrom.Message) error {
		body := map[string]any{
			"type": "generate_ok",
			"id":   fmt.Sprintf("%s%d", node.ID(), time.Now().Unix()),
		}

		node.Reply(msg, body)
		return nil
	})
}

i missed adding a method call to node.Run() :man_facepalming:

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.