Closed nhahtdh closed 8 years ago
Either add hostfile entries mapping n1 to the first DB node, etc, or add a :nodes key to your test. See jepsen.core/run for docs.
Thanks for your response.
I added n{1..5} to the /etc/hosts
, and I got Auth fail error, even though I have set up password-less login for my account and even the root account on the db nodes.
In the end, I resorted to adding the list of nodes, and username and password to chronos.clj
as per your second suggestion.
Then, a new error pops up:
lein test jepsen.chronos-test
INFO jepsen.os.debian - 192.168.99.223 setting up debian
INFO jepsen.os.debian - 192.168.99.224 setting up debian
INFO jepsen.os.debian - 192.168.99.225 setting up debian
INFO jepsen.os.debian - 192.168.99.222 setting up debian
INFO jepsen.os.debian - 192.168.99.221 setting up debian
INFO jepsen.os.debian - Installing #{sysvinit-core faketime unzip sysvinit}
INFO jepsen.os.debian - Installing #{sysvinit-core faketime unzip sysvinit}
INFO jepsen.os.debian - Installing #{sysvinit-core faketime unzip sysvinit}
INFO jepsen.os.debian - Installing #{sysvinit-core faketime unzip sysvinit}
INFO jepsen.os.debian - Installing #{sysvinit-core faketime unzip sysvinit}
lein test :only jepsen.chronos-test/install-test
ERROR in (install-test) (FutureTask.java:122)
expected: (:valid? (:results (run! (simple-test "0.28.1-2.0.20.ubuntu1204" "2.4.0-0.1.20151007110204.ubuntu1204"))))
actual: java.util.concurrent.ExecutionException: java.lang.RuntimeException: [sudo] password for vsdev: E: Unable to locate package sysvinit-core
E: Package 'sysvinit' has no installation candidate
Reading package lists...
Building dependency tree...
Reading state information...
Package sysvinit is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
upstart:i386 sysvinit-utils:i386 upstart sysvinit-utils
I tried modifying os/debian.clj
by commenting off the offending packages:
(c/su
; Packages!
; :sysvinit-core
; ;sysvinit
(install [:wget
:sysvinit-utils
:curl
:vim
:man-db
:faketime
:unzip
:iptables
:psmisc
:iputils-ping
:rsyslog
:logrotate])
However, for some reason, the same error occurs. It seems that my change doesn't even get compiled. I tried lein clean
, lein - U test
, remove .m2
folder and .lein
folder and reinstall lein
, but none of them work. I even modified chronos.clj
to include :reload-all
, but no dice:
(ns jepsen.chronos
"Sets up chronos"
(:require [clojure.tools.logging :refer :all]
[clojure.java.io :as io]
[clojure.string :as str]
[clojure.pprint :refer [pprint]]
[clj-http.client :as http]
[clj-time.core :as time]
[clj-time.format :as time.format]
[cheshire.core :as json]
[jepsen [client :as client]
[core :as jepsen]
[db :as db]
[tests :as tests]
[control :as c :refer [|]]
[checker :as checker]
[nemesis :as nemesis]
[generator :as gen]
[util :refer [timeout meh]]
[mesosphere :as mesosphere]]
[jepsen.control.util :as cu]
[jepsen.os.debian :as debian]
[jepsen.chronos.checker :refer [checker epsilon-forgiveness]]
:reload-all
)
)
At this point, I'm not even sure if I should switch to debian and test on it instead...
The tests are independent clojure projects and use lein dependency resolution to pull in the Jepsen library. See lein's docs on checkouts if you want to pull changes from disk instead. Or, you could just use Debian with the Debian tests.
I set up 6 Ubuntu 14.04 VMs: 1 control node and 5 to-be-db-nodes. I have set up password-less SSH and make sure that
known_hosts
file stores the host names/IP address in plain instead of hash. The 6 VMs are behind firewall, so I havehttp_proxy
andhttps_proxy
environment variables set.From my understanding, LXC set up is for running test on a single host, by spawning VMs on that host. I already have 6 separate VMs set up (equivalent to having 6 separate machines), so this step should not be necessary.
However, when I run
lein test
onaerospike
(following the docs), I keep getting this error:I have also tried changing
hosts-map
injepsen/src/jepsen/control/net.clj
, but to no avail.What should I do to get Jepsen to run for this set up with separate machine?