Skip to content

Update dependency jepsen/jepsen to v0.3.12#3902

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jepsen-jepsen-0.x
Open

Update dependency jepsen/jepsen to v0.3.12#3902
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jepsen-jepsen-0.x

Conversation

@renovate

@renovate renovate Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
jepsen/jepsen (source) patch 0.3.110.3.12

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

jepsen-io/jepsen (jepsen/jepsen)

v0.3.12: 0.3.12

Compare Source

A big release! This fixes several deadlocks and a safety error in Elle's inference of version orders for rw workloads which caused tests to incorrectly report that version orders were cyclic. It also adds new features: more sophisticated transaction generation and checking for Elle, more robust, useful client setup/teardown, and better support for multi-role tests with dependencies between components. There are a slew of quality-of-life improvements: compact printing of operations, automatically inferring network devices, the ability to serialize byte arrays, initialize Jepsen's random seeds, flattening deeply nested checkers, and so on.

Bugfixes

  • jepsen.history had a deadlock in calls to invocation and completion for SparseHistory.
  • checker.perf could crash when trying to render performance plots for histories where operations never completed. It now skips these operations.
  • Under specific conditions, Elle could incorrectly infer that the version order for a key was cyclic despite no cycle existing. This bug was caused by the incorrect use of a mutable data structure for performance. It seems to have been rare: it hinged on a specific combination of search order and the specific :index values of operations, and took years to appear in Jepsen's tests.
  • Elle failed to detect internal anomalies in rw and append workloads where a key's value was known to exist, but a read returned nil. It now catches these anomalies.
  • jepsen.role allowed each DB setup thread to wait on their own individually-assigned barriers, causing deadlock during setup. It now generates a shared barrier for all nodes in a role on DB setup.
  • db.watchdog's teardown! would fail to tear down the wrapped DB when no watchdog existed.

API Changes

  • Client setup/teardown has been reworked. We now call client/teardown! at the start of each test, before client/setup!; this ensures that workloads start with a clean state when (e.g.) testing a hosted service. We create dedicated clients for setup/teardown, rather than using the same ones for the main invoke calls; this is more robust when a client (e.g.) decides its node is inaccessible and refuses to run teardown!. Finally, client teardown is skipped when testing with --leave-db-running; this ensures you can inspect DB state.
  • Jepsen is now built for JDK 21+
  • control.util/ls-full is deprecated; use (ls dir {:full-path? true}).
  • A new namespace, jepsen.print, takes over printing and logging output. Many functions from jepsen.util now live here.

New Features

  • Operations now print as maps in results.edn, which makes things much more readable.
  • Elle can now take a new :transaction-order key for checking read-write registers. This allows databases which know (or think they know) the order of transactions to specify it; Elle can use this to infer version orders and detect anomalies that would otherwise go hidden.
  • Elle now supports a Zipfian distribution for the frequency of keys in the pool.
  • Elle now generates a Zipfian distributed number of writes per key. Previously, the number of writes per key was constant, which caused tests to miss bugs that required frequent creation of new keys. Now we generate a variety of short-lived and long-lived keys in a single test. The defaults have been re-tuned to hopefully yield a good balance of long-lived-but-reasonably-debuggable histories.
  • role/db can express dependencies between roles, making it easy to say "Don't start this service until postgres is up".
  • checker/flatten: flattens deeply composed checkers.
  • jepsen.net automatically infers which network device to use, rather than hardcoding eth0.
  • rand/set-rng! and set-seed!: allows setting Jepsen's RNG once. Helpful for building deterministic test runs.

Minor Changes

  • We now use dom.top.core/timeout instead of jepsen.util/timeout. This seems significantly more robust when dealing with (e.g.) clients that swallow or retry InterruptedExceptions.
  • store.format can now serialize byte arrays, so you can include them in histories and checker results.
  • control.util/await-tcp-port can now take a host, if you'd like to wait on (e.g.) another node's TCP port.
  • control.util/stop-daemon can now take a custom signal.
  • store/with-history! now handles the history writer, as opposed to generator.interpreter/run!.
  • control.util/kill-bin! can wait for the process it's killing.
  • lazyfs/mounted?: a function to check if the filesystem is mounted.
  • SSHJ's logging complaints about missing common keys are now suppressed.
  • Fixed a generator docstring which mis-explained :pending ops.
  • Improved tests for LazyFS.

Full Changelog: jepsen-io/jepsen@v0.3.11...v0.3.12


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jul 21, 2026
@renovate
renovate Bot requested a review from alexanderkiel as a code owner July 21, 2026 04:33
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jul 21, 2026
@renovate
renovate Bot force-pushed the renovate/jepsen-jepsen-0.x branch from f767580 to 6679221 Compare July 21, 2026 20:20
@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.40%. Comparing base (7ed3c53) to head (6679221).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #3902   +/-   ##
=======================================
  Coverage   96.39%   96.40%           
=======================================
  Files         431      431           
  Lines       26704    26704           
  Branches      615      613    -2     
=======================================
+ Hits        25742    25744    +2     
  Misses        467      467           
+ Partials      495      493    -2     

see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@alexanderkiel
alexanderkiel added this pull request to the merge queue Jul 22, 2026
@alexanderkiel alexanderkiel self-assigned this Jul 22, 2026
@alexanderkiel alexanderkiel added this to the v1.11.0 milestone Jul 22, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant