Skip to content

0.3.9

Latest
Compare
Choose a tag to compare
@aphyr aphyr released this 07 May 13:50
· 3 commits to main since this release

A medium-sized release, this version makes several quality-of-life improvements. We (finally!) download log files only once, rather than twice at the end of a run; this should make multi-GB log downloads less painful. A new namespace, db.watchdog, supports restarting flaky DBs automatically. Generators are a little more sophisticated, and a little easier to compose. Several error messages are nicer. Enjoy!

Bugfixes

  • Jepsen now downloads log files only once, rather than twice at the end of a run
  • nemesis.file: converts rational :probability values to floats, rather than letting corrupt-file silently mis-parse the rational.

API Changes

New Features

  • db.watchdog: automatically restarts DB nodes when they crash
  • cli/without-defaults-for: strips defaults from option specifications. This significantly streamlines using the same option spec for both test and test-all.
  • control.util/tarball!: creates a tarball of a directory. Particularly helpful for downloading data dirs as a part of db/log-files.
  • generator/map: functions can now take (f op test context) for more control.
  • generator/shortest-any: like any, but ends as soon as any single generator does. Helpful when you have a fixed-length generator, and you want to mix in some other operations, but don't know for how long.

Minor Changes

  • lein test now runs integration tests by default. I'm not entirely sure about this one; will try it out and see.
  • When downloading log files, Jepsen tries to kill all DB nodes first. This reduces the chances of files shifting as we read them.
  • generator: many constructors now pass through nil generators intelligently, returning nil immediately. This makes it easier to determine whether a generator will do anything before the test starts.
  • nemesis/node-start-stopper: re-use existing SSH connections rather than opening new ones
  • reconnect/with-conn: throws if no connection is available. This is a significantly clearer error message.
  • Improved error messages for ex-infos thrown in generators and from a test as a whole
  • nemesis.file: returns [:io-error ...] instead of throwing on IO errors. This cuts down on noise when trying to corrupt files the DB is (e.g.) deleting out from under us.
  • nemesis.combined: shorter printed representations for some generators
  • Jepsen's interrupt handler logging has more informative log lines
  • reconnect: fixed a docstring typo

Dependencies

  • elle 0.2.4
  • jepsen.history 0.1.5
  • knossos 0.3.12
  • ring 1.14.1
  • test.chuck 0.2.15