Description
Here are some issues I faced while getting this MongoDB jepsen suite running locally with docker. Information about the code that I am using
Jepsen : commit a2bcad59f0df5bd39cea1e61d9b64376c479df9c (HEAD -> main)
MongoDB : commit 83548bb8e054170ecc4b8fda70390e40fcca5e30 (origin/master, origin/HEAD)
Initially I had an issue of not enough nodes (by default Jepsen starts 5 nodes in docker) as evident by this function jepsen.mongodb.db/shard-node-plan
I fixed that by adding 2 more nodes.
Then I hit another roadblock, while installing mongoDB on each node, it error'd out saying that a required dependency can't be found, specifically libcurl3
So apparently, libcurl4
and libcurl3
don't work well together and in-spite of efforts I wasn't able to get libcurl3
and mongo running. So I changed the way Jepsen was installing MongoDB and followed the official documentation that installs Mongo 4.2. That worked.
But now I am still unable to run the tests as every time there seems to be some SSH related exception saying the control node cant reach the DB nodes.
I changed the installation instructions for MongoDB since the default instructions in setup! were error'ing out due to a libcurl3 dependency. Instructions that I have coded into setup! instead
(defn install!
[test]
"Installs MongoDB on the current node."
(c/su
(c/exec :mkdir :-p "/tmp/jepsen")
(let [version (:version test)
m-version (str/join "." (butlast (str/split "4.2.10" #"\.")))
versioner #(keyword (str "mongodb-" %1 "=" version))]
(c/exec :dpkg :--configure :-a)
(c/exec :apt :-y :--fix-broken :install)
()
(c/exec :apt-get :install :gnupg)
(c/exec :wget :-qO :-
(str "https://www.mongodb.org/static/pgp/server-" m-version ".asc")
:| :apt-key :add :-)
(c/exec :echo (str "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/" m-version " multiverse") :| :tee (str "/etc/apt/sources.list.d/mongodb-org-" m-version ".list"))
(c/exec :apt-get :update)
(c/exec :apt-get :install :-y
(versioner "org")
(versioner "org-server")
(versioner "org-shell")
(versioner "org-mongos"))
(c/exec :systemctl :daemon-reload))))