Skip to content

Issues using Jepsen's db/Kill #620

@hilkiu2

Description

@hilkiu2

Hello! I am attempting to use db/Kill from jepsen.db in my own db implementation, but I keep coming across this error:

Caused by: java.lang.ClassNotFoundException: jepsen.db.Kill

In my db implementation I am able to successfully run and use db/DB and db/LogFIles (and all the other available protocols I've been able to at least successfully define in my implementation, despite them not being used), but trying to implement db/Kill results in the compiler issue above.

My code successfully imports :require [jepsen.db :as db], and I've defined both kill! and start! functions. Is this an error on Jepsen's end, or am I incorrectly using db/Kill? I've looked at other Jepsen tests that use db/Kill and it seems to me that's all they are doing as well but I've been stuck with this for some time now.

Here is how my db is defined:

(ns jepsen.aeron.db
  (:require [jepsen.control :as c]
            [jepsen.db :as db]
            [clojure.tools.logging :refer :all]
            [clojure.string :as str]))

 ;; random helper functions that I've omitted for brevity, works as expected when running Jepsen and do not cause the issue

(defn db [version]
  (reify 
    db/DB
    (setup! [_ test node])  ;; includes logic that I've omitted for brevity, works as expected when running Jepsen 
    (teardown! [_ test node])  ;; includes logic that I've omitted for brevity, works as expected when running Jepsen 

    db/Kill ;; Running Jepsen works fine without these 3 lines of code, but once I've included them, I get the error above
    (kill! [_ test node])
    (start! [_ test node])

    db/LogFiles
    (log-files [_ test node]) ;; includes logic that I've omitted for brevity, works as expected when running Jepsen 
  )
)

I'm sorry if this isn't the correct place to put this/ask about this, but I'm not sure how to further debug this issue. If there's another channel or place that I should ask this question, please let me know. Any help would be greatly appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions