Kyle Kingsbury
unread,Nov 3, 2021, 3:38:44 PM11/3/21Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to anno...@jepsen.io
Howdy testers!
Jepsen 0.2.5 is now available. Nothing major here--just a host of
quality-of-life improvements and some minor changes.
This release focuses on improved composition for generators (especially
turning on and off faults over time), working with daemons that use
wrapper scripts and break pidfile management, and more sophisticated
membership nemeses. There's also a swath of minor bugfixes, utility
functions, filled-out documentation, and ease-of-use improvements. Note
in particular that the behavior of `delay` and `stagger` generators
have changed: they no longer try to catch up when they fall behind, but
instead schedule delays of approximately n seconds since the previous
invocation. This should behave much better when composing
delayed/staggered generators interleaved with long pauses, while
retaining the property that you can mix multiple delayed generators
together and still get each running at approximately the right rate.
## Bugfixes
- control.util/install-archive! catches another type of corrupt zipfile
error
- gen/until-ok previously allowed *any* OK event to trigger its
completion. It now checks to make sure the completion is for an event
it actually emitted.
- independent/tuple-gen tried to wrap operations which were not
actually `:type :invoke`--which caused it to break when generators
emitted `:sleep` operations. It now only wraps invokes.
## API Changes
- generator/stagger and delay no longer try to "catch up" when they
fall behind; instead they schedule a mean delay between all operations.
This lets them play nicer with generators that expect to toggle
staggered/delayed generators on and off over time.
## New Features
- control/env helps you construct environment variable strings out of
literals and maps. This lets you pass things like {:AUTHOR "Foucault"}
as the :env to control.util/start-daemon, rather than munging loads of
string literals.
- util/await-fn calls a function repeatedly until it no longer throws,
with configurable poll interval, timeouts, and logging. Helpful for
blocking on long-running database setup.
- tests.cycle/append and wr checkers now use the :subdirectory option
passed to `checker/check` to write Elle files into subdirectories
- generator/cycle: cycles a generator n or infinitely many times
- generator/cycle-times: cycles through a rotating pool of generators
on a fixed time schedule. Helpful for alternating between active and
quiet periods of a nemesis.
- nemesis.membership.State now has a setup! and teardown! callback
which can be used for storing e.g. network clients necessary for
interacting with the cluster.
## Minor Changes
- Remove :pure-generators requirement to confirm use of new generator
style.
- Elle 0.1.3, Knossos 0.3.8, clojure 1.10.3, tools.cli 1.0.206, unilog
0.7.28, http-kit 2.5.3, ring 1.9.4, sshj 0.31.0, bouncycastle 1.69,
fipp 0.6.24, dom-top 1.0.6, sshj 0.32.0
- checker.timeline no longer completes the history, which was, I think,
unnecessary, and caused blowups on some test cases.
- nemesis.membership now has expanded documentation, and returns the
underlying state atom in the package it constructs, so you can work
with it.
- os.debian allows releaseinfo to change when executing apt update
- core/run! saves the test before tearing down the DB, which means if
DB teardown crashes, you'll have at least some useful data to work with
- cli/parse-concurrency can now take arbitrary keys, making it easier
to write tests that take multiple concurrency-related arguments
- Fixed some tests in control.util-test broken by an external FTP site
going down
- control.util/start-daemon! has more complete documentation
- control.util/start-daemon! can now avoid using pidfiles and can
instead check for `exec`
- control.util/stop-daemon! can also avoid using pidfiles.
Happy testing!
--Kyle