Repository navigation
fix(performance): compile the example's tests again and gate them per PR - #900
Closed
FlorentinDUBOIS wants to merge 2 commits into
Closed
FlorentinDUBOIS wants to merge 2 commits into
FlorentinDUBOIS wants to merge 2 commits into
Conversation
c4a5be6 (PIP-460 M1 stream consumer) removed `MessageId::segment_id`: a scalable value now qualifies an ordinary id with an explicit segment source instead of changing its equality. The `scalable-topics` block in `examples/performance.rs` still assigned that field, so its test module stopped compiling and the nightly `performance inputs and contracts` step has exited 101 every night since 2026-10-17. The block asserted that `marker_position_matches` separates two ids that differ only by segment. That property no longer exists on `MessageId`, and the example drives no scalable workload, so the block is removed; `marker_position_matches` is unchanged. No per-PR job compiled an example's `#[cfg(test)]` module: clippy's `--all-targets` checks examples as binaries, and the workspace test run skips examples. The non-e2e test job and the documented local chains now run `cargo test -p magnetar-driver --examples`, which fails on the pre-fix tree with the same E0609. Signed-off-by: Florentin Dubois <florentin.dubois@clever.cloud>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
c0d62a4 added `a_standalone_binary_port_is_refused_before_a_proxy_starts` to `pulsar_fixture_contract.rs`, whose contract is Docker-free. It reached the guard through `Pulsar::start_proxy()`, so the binary stayed container-free only because the assertion panicked first: a regressed guard would have launched a proxy instead of failing. The performance fixture policy reads that `.start_proxy()` call as a fixture start and classifies the target `fixture-required`, which fails the nightly's `test_fixture_policy_classifies_every_target_of_the_repository_tests` contract since 2026-10-17. The guard moves into `Pulsar::proxy_command()`, the proxy counterpart of `command()`; `start_proxy()` calls it before creating a container, and the test calls it directly as a plain `#[test]`. Signed-off-by: Florentin Dubois <florentin.dubois@clever.cloud>
Collaborator
Author
|
Closing: the performance nightly fix is dropped for now. The worker shards still fail (exit code 2) for a separate cause dating from 2026-10-13, which this PR does not address. |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
The scheduled
performanceworkflow has failed every night since 2026-10-13. Two causes, one masking the other:moonpool,workspaceshards)preparewas greenperformance inputs and contracts(docker child exit 101)c4a5be6(PIP-460 M1 stream consumer) removedMessageId::segment_id. Thescalable-topicsblock incrates/magnetar/examples/performance.rsstill assigned it, so the example's test module stopped compiling:Reproduced locally with the exact contracts command:
cargo test -p magnetar-driver --example performance --release --features moonpool,scalable-topics --locked→ exit 101.Fix
marker_position_matchesseparates ids differing only by segment;MessageIdno longer carries a segment by design (see its doc comment), and the example drives no scalable workload.marker_position_matchesis unchanged.c4a5be6merge green: no per-PR job compiled an example's#[cfg(test)]module (clippy --all-targetschecks examples as binaries; the workspace test run skips examples). The non-e2e test job now runscargo test -p magnetar-driver --all-features --locked --examples, andCONTRIBUTING.md/CLAUDE.mdcarry the same line in their validation chains.Verification
test result: ok. 4 passed; 0 failed.4 passedin ~100 s.CONTRIBUTING.md$FEATURESvariant →4 passed.cargo +nightly fmt --all --check,cargo clippy -p magnetar-driver --all-features --examples --profile test -- -D warnings, prettier, actionlint (only the pre-existingubuntu-26.04label notice, identical onmain).Second masked cause (found by the first dispatch, run 41624715389)
With the example compiling,
preparereached its Python contracts and failed one test (CIpython-contracts.stderr:FAILED (failures=1)):c0d62a4(landed in the same0cfbd30range asc4a5be6) addeda_standalone_binary_port_is_refused_before_a_proxy_starts, which reached the proxy guard throughPulsar::start_proxy(). The Docker-free binary stayed container-free only because the assertion panicked first, and the fixture policy reads that.start_proxy()call as a fixture start. The guard now lives inPulsar::proxy_command()(the proxy counterpart ofcommand()),start_proxy()calls it before creating a container, and the test calls it as a plain#[test].FAILED (failures=1)with the same assertion; on the new one →OK.cargo test -p magnetar-driver --all-features --locked --test pulsar_fixture_contract→22 passed; clippy--tests -D warningsclean.Still to prove
A second manual
performancedispatch (run 41626712212, headfbde666) is running to show whether the 2026-10-13 worker failure still exists. Note the first green nightly after merge will measure froma154636(the last successful nightly's head), so a wide comparison range is expected, not a regression.