Skip to content

[FEAT]: Correct/update jepsen tests, properly decode messages from the DB, fix memory leaks with JNI. - #31

Merged
SeedyROM merged 1 commit into
mainfrom
integration/jepsen
Feb 4, 2026
Merged

SeedyROM merged 1 commit into
mainfrom
integration/jepsen

Conversation

@SeedyROM

@SeedyROM SeedyROM commented Feb 4, 2026

Copy link
Copy Markdown
Owner

No description provided.

This commit fixes multiple issues discovered during Jepsen linearizability testing:

**Empty Byte Handling:**
- JNI decoder now returns null for empty bytes instead of throwing errors
- Storage engine skips empty values in all scan operations with warning logs
- extract_tags_fast() returns empty map for empty bytes to prevent crashes
- Clojure encoder/client handle nil decoded events gracefully
- Treats empty data as valid "no value" state rather than fatal error

**Raft Error Handling:**
- Fixed "forward request to: None, None" error messages
- Return UNAVAILABLE (not INTERNAL) when leader is unknown during election
- Properly distinguishes between retryable states and actual failures
- Improves client experience during partition recovery

**Jepsen Infrastructure:**
- Fixed Apple Silicon ARM64 compatibility in Docker builds
- Added architecture detection for protoc and grpc-java binaries
- Fixed Rust installation SSL certificate issues (added ca-certificates)
- Enhanced compile-protos.sh with diagnostics and error checking
- Added verification for Java class generation in run-tests.sh
- Removed erroneous proto file copy that was failing builds

**Test Results:**
All Jepsen linearizability tests now pass consistently with no
deserialization errors. The system correctly handles network partitions,
leader elections, and transient cluster states.

Fixes distributed systems robustness and Jepsen test reliability.
@SeedyROM
SeedyROM merged commit 655da43 into main Feb 4, 2026
5 checks passed
@SeedyROM
SeedyROM deleted the integration/jepsen branch February 4, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant