jepsen icon indicating copy to clipboard operation
jepsen copied to clipboard

[docker] rabbitmq test fails with "rabbitmq-server: unrecognized service"

Open mbsimonovic opened this issue 8 years ago • 8 comments

from jepsen-control docker container:

$ cd rabbitmq && lein test :only jepsen.rabbitmq-test


lein test jepsen.rabbitmq-test
INFO  jepsen.os.debian - :n5 setting up debian
INFO  jepsen.os.debian - :n2 setting up debian
INFO  jepsen.os.debian - :n1 setting up debian
INFO  jepsen.os.debian - :n4 setting up debian
INFO  jepsen.os.debian - :n3 setting up debian
INFO  jepsen.os.debian - Installing #{man}
INFO  jepsen.os.debian - Installing #{man}
INFO  jepsen.os.debian - Installing #{man}
INFO  jepsen.os.debian - Installing #{man}
INFO  jepsen.os.debian - Installing #{man}
INFO  jepsen.rabbitmq - :n2 Nuking rabbit
INFO  jepsen.rabbitmq - :n4 Nuking rabbit
INFO  jepsen.rabbitmq - :n5 Nuking rabbit
INFO  jepsen.rabbitmq - :n3 Nuking rabbit
INFO  jepsen.rabbitmq - :n1 Nuking rabbit
INFO  jepsen.rabbitmq - Fetching deb package
INFO  jepsen.rabbitmq - Fetching deb package
INFO  jepsen.rabbitmq - Fetching deb package
INFO  jepsen.rabbitmq - Installing rabbitmq
INFO  jepsen.rabbitmq - Installing rabbitmq
INFO  jepsen.rabbitmq - Installing rabbitmq
INFO  jepsen.rabbitmq - :n2 Nuking rabbit
INFO  jepsen.rabbitmq - :n1 Nuking rabbit
INFO  jepsen.rabbitmq - :n3 Nuking rabbit
INFO  jepsen.rabbitmq - :n4 Nuking rabbit
INFO  jepsen.rabbitmq - :n5 Nuking rabbit
INFO  jepsen.rabbitmq - :n3 Rabbit dead
INFO  jepsen.rabbitmq - :n1 Rabbit dead

lein test :only jepsen.rabbitmq-test/rabbit-test

ERROR in (rabbit-test) (FutureTask.java:122)
Uncaught exception, not in assertion.
expected: nil
  actual: java.util.concurrent.ExecutionException: java.lang.RuntimeException: rabbitmq-server: unrecognized service


...

Caused by: java.lang.RuntimeException: rabbitmq-server: unrecognized service
 at jepsen.control$throw_on_nonzero_exit.invoke (control.clj:105)
    jepsen.control$exec_STAR_.doInvoke (control.clj:121)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:624)
    jepsen.control$exec.doInvoke (control.clj:135)
    clojure.lang.RestFn.invoke (RestFn.java:436)
    jepsen.rabbitmq$reify__8631.teardown_BANG_ (rabbitmq.clj:97)
    jepsen.db$eval5744$fn__5745$G__5734__5749.invoke (db.clj:4)
    jepsen.db$eval5744$fn__5745$G__5733__5754.invoke (db.clj:4)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invoke (core.clj:626)
    clojure.core$partial$fn__4228.doInvoke (core.clj:2468)
    clojure.lang.RestFn.invoke (RestFn.java:421)
    jepsen.core$on_nodes$fn__7547.invoke (core.clj:85)
    clojure.core$pmap$fn__6328$fn__6329.invoke (core.clj:6466)
    clojure.core$binding_conveyor_fn$fn__4145.invoke (core.clj:1910)
    clojure.lang.AFn.call (AFn.java:18)
    java.util.concurrent.FutureTask.run (FutureTask.java:266)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
    java.lang.Thread.run (Thread.java:745)

hm, rabbitmq is installed only on n1,n2 and n3, but isn't it supposed to be install on all 5 nodes?

mbsimonovic avatar Dec 23 '16 19:12 mbsimonovic

adding :nodes [:n1 :n2 :n3 :n4 :n5] to rabbitmq-test makes it try to start rabbitmq on 4 nodes?! btw how can I enable DEBUG logging level?

mbsimonovic avatar Dec 24 '16 07:12 mbsimonovic

Same issue above, anyone help please?

vutruongqa avatar Nov 30 '18 09:11 vutruongqa

I have the same issue, but when run again. It stuck at another step root@control:/jepsen/rabbitmq# lein test jepsen.rabbitmq-test

lein test jepsen.rabbitmq-test

INFO jepsen.os.debian - :n5 setting up debian INFO jepsen.os.debian - :n4 setting up debian INFO jepsen.os.debian - :n3 setting up debian INFO jepsen.os.debian - :n2 setting up debian INFO jepsen.os.debian - :n1 setting up debian INFO jepsen.os.debian - Installing #{man} INFO jepsen.os.debian - Installing #{man} INFO jepsen.os.debian - Installing #{man} INFO jepsen.os.debian - Installing #{man} INFO jepsen.os.debian - Installing #{man} INFO jepsen.rabbitmq - :n4 Nuking rabbit INFO jepsen.rabbitmq - :n1 Nuking rabbit INFO jepsen.rabbitmq - :n3 Nuking rabbit INFO jepsen.rabbitmq - :n2 Nuking rabbit INFO jepsen.rabbitmq - :n5 Nuking rabbit INFO jepsen.rabbitmq - Fetching deb package INFO jepsen.rabbitmq - Installing rabbitmq INFO jepsen.rabbitmq - :n4 Rabbit dead INFO jepsen.rabbitmq - :n2 Rabbit dead INFO jepsen.rabbitmq - :n1 Rabbit dead INFO jepsen.rabbitmq - Setting cookie INFO jepsen.rabbitmq - Setting cookie INFO jepsen.rabbitmq - uploading config INFO jepsen.rabbitmq - uploading config INFO jepsen.rabbitmq - Starting rabbitmq INFO jepsen.rabbitmq - Starting rabbitmq

Do you know why it has different issues while starting the test ?

tvhphuong avatar Nov 30 '18 09:11 tvhphuong

I haven't worked on the rabbit tests in 3 years, but my guess is that whatever version of Debian (and possibly Jepsen) you're using no longer runs the rabbitmq service in the same way that it did circa 2015.

aphyr avatar Dec 01 '18 20:12 aphyr

@aphyr, Can you suggest any tool to test rabbitmq that is easier to read than Jepsen(clojure)? I have spent a week to read on that but still can't understand how it works. If you have a document that guide step by step, please help to share. Thanks much for your answer

vutruongqa avatar Dec 03 '18 04:12 vutruongqa

If you have a document that guide step by step, please help to share.

have you checked tutorial?

vjuranek avatar Dec 03 '18 11:12 vjuranek

Sorry @vutruongqa, I don't really know any other tool that does what Jepsen does. At least, not in this degree of depth. There are a few Jepsen clones out there but they're usually oriented towards testing one particular system, or just inducing faults without correctness testing.

aphyr avatar Dec 03 '18 14:12 aphyr

Oh, and as for support, well, there's a lot of documentation in Jepsen. The README links to the API docs, architecture overview, there are extensive code comments and docstrings, a comprehensive tutorial (as @vjuranek noted), and there are several free resources for learning Clojure; Clojure for the Brave and True is quite nice.

As far as bitrot goes, I'd love to spend some time bringing the RabbitMQ tests back up to speed with modern Jepsen, but my backlog right now is measured in years, not days. :-(

If you'd like commercial support, there are also engineers who work on Jepsen on a contract basis, and they might have some availability to help in your testing. I understand if you're budget constrained, though.

aphyr avatar Dec 03 '18 14:12 aphyr