-
Notifications
You must be signed in to change notification settings - Fork 2
test(jepsen): add ZSet safety workload with model-based checker #550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
bootjp
wants to merge
42
commits into
main
Choose a base branch
from
feat/jepsen-zset-safety
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
a32263d
test(jepsen): add ZSet safety workload with model-based checker
bootjp 2693a30
ci(jepsen): run ZSet safety workload in per-push and scheduled jobs
bootjp 94be1bd
fix(jepsen-zset-safety): plug checker false positives + add unit tests
bootjp 9bfcc13
fix(jepsen-zset-safety): no-op-ZREM-only member must not trigger :sco…
bootjp 6d0b4c3
fix(jepsen-zset-safety): address CodeRabbit checker soundness issues
bootjp 86d23dd
Merge branch 'main' into feat/jepsen-zset-safety
bootjp ecb3983
fix(jepsen): correct ZSet checker for infinity, stale reads, and :inf…
bootjp 2a194a4
fix(jepsen): accept linearization of concurrent ops and uncertain mut…
bootjp 49c5e0c
Merge branch 'main' into feat/jepsen-zset-safety
bootjp 0c0efc4
fix(jepsen): keep strict score check when concurrent ZINCRBY score is…
bootjp e5dcc34
fix(jepsen): exclude :fail completions from concurrent mutation uncer…
bootjp 02a8adf
fix(jepsen): restrict committed ZINCRBY candidates to linearization-c…
bootjp da85560
fix(jepsen): restrict unknown-score? to :info zincrby, not any concur…
bootjp 502f64a
fix(jepsen): guard setup! and ZINCRBY response parsing against nil/mi…
bootjp 33d59c5
fix(jepsen): restrict can-be-present? existence evidence to ZADD/ZINCRBY
bootjp 9535ff3
fix(jepsen): correct clojure.tools.logging/warn call style in zset wo…
bootjp fde116c
fix(jepsen): decode Redis ZSET member bytes as UTF-8 explicitly
bootjp 0c948a2
fix(jepsen-zset): hard-fail setup! when :conn-spec is missing
bootjp 84989f1
fix(jepsen-zset): prepend test subcommand only when absent or an option
bootjp 7a7a218
fix(jepsen-zset): document why :final-generator is overridden to nil
bootjp 6219831
fix(jepsen-zset): guard ZREM nil reply to avoid NPE in invoke!
bootjp e67d29f
fix(jepsen-zset): return :valid? :unknown when no successful reads
bootjp 623d5c2
fix(jepsen-zset): hard-fail setup! when cleanup DEL errors
bootjp 22e41e1
fix(jepsen-zset): guard nil .getMessage on exception :error fields
bootjp 9f5e958
docs(jepsen-zset): strip LLM reviewer artifact markers from comments
bootjp d0c8a03
fix(jepsen-zset): let inner workload's :final-generator pass through
bootjp 559e83d
fix(jepsen-zset): reject odd-length WITHSCORES replies
bootjp 1a9370f
fix(jepsen-zset): coerce ZREM count across Long / string / bytes
bootjp ad9079c
fix(jepsen-zset): include full :allowed set in missing-member-range
bootjp 69db24e
fix(jepsen-zset): catch Throwable in invoke! so Errors don't crash wo…
bootjp d03672e
Merge branch 'main' into feat/jepsen-zset-safety
bootjp 29e62ca
Merge branch 'main' into feat/jepsen-zset-safety
bootjp 03ce992
jepsen: tighten zset safety checker
bootjp d31d8b9
jepsen: tighten zset safety checker
bootjp d094a85
jepsen: tighten zset safety linearization
bootjp c514791
jepsen: fix zset safety regressions
bootjp a2b57b8
jepsen: tighten zset prefix anchors
bootjp 31f156c
Merge remote-tracking branch 'origin/main' into HEAD
bootjp d74cfed
adapter: fix zset range tie ordering
bootjp 72e4c53
test: stabilize CI race checks
bootjp c3edbfb
adapter: fallback on capped zset range scans
bootjp a03c2cf
jepsen: fix bounded zset prefix checker
bootjp File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a bounded
ZRANGEBYSCORE key +inf +inf LIMIT ...scan sees at least two+infmembers, this new tie fallback sends the command tocmdZRangeByScoreSlow; that slow path usesscoreInRange, which does not enforcezBoundPosInf/zBoundNegInfbounds, so a zset that also has finite scores can return the lowest finite member instead of a+infmember. This regresses the wide-column fast path specifically for duplicate infinite scores; either keep this case on the fast path or make the slow score filter handle infinite bounds before falling back.Useful? React with 👍 / 👎.