Skip to content
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

[compiler-v2] Adding full compiler pipeline to many test configs #12831

Merged
merged 11 commits into from
Apr 10, 2024

Conversation

vineethk
Copy link
Contributor

@vineethk vineethk commented Apr 9, 2024

Description

This PR adds full compiler pipeline to many test configs. This allows double checking that bytecode verification does not fail for any code that we successfully compile in v2 without reporting blocking errors.

As a result, we found this bug: #12820.

Note that adding full compiler pipeline to "bytecode-gen" is being done here - #12818, so not done in this PR.

Closes #12830.

Type of Change

  • Tests

Which Components or Systems Does This Change Impact?

  • Move/Aptos Virtual Machine

How Has This Been Tested?

Existing tests, which have all been updated with new baselines.

Key Areas to Review

Output of the baseline files: I have tried to explain why the changes (other than "bytecode verification succeeded" messages) are okay once per directory, using github comments.

Copy link

trunk-io bot commented Apr 9, 2024

⏱️ 8h 30m total CI duration on this PR
Job Cumulative Duration Recent Runs
rust-move-unit-coverage 1h 47m 🟥🟥🟥🟥🟥
rust-unit-tests 1h 32m 🟩🟩🟩
rust-targeted-unit-tests 46m 🟩🟩
rust-move-tests 42m 🟩🟩🟩🟩
rust-smoke-tests 39m 🟩
rust-lints 28m 🟩🟩🟩🟩
execution-performance / single-node-performance 24m 🟩
windows-build 23m 🟩
rust-images / rust-all 18m 🟩
run-tests-main-branch 17m 🟩🟩🟩🟩
forge-e2e-test / forge 14m 🟩
forge-compat-test / forge 13m 🟩
cli-e2e-tests / run-cli-tests 11m 🟥
check-dynamic-deps 9m 🟩🟩🟩🟩
general-lints 8m 🟩🟩🟩🟩
rust-build-cached-packages 8m 🟩
check 4m 🟩
semgrep/ci 2m 🟩🟩🟩🟩
node-api-compatibility-tests / node-api-compatibility-tests 54s 🟩
file_change_determinator 52s 🟩🟩🟩🟩
file_change_determinator 48s 🟩🟩🟩🟩
file_change_determinator 48s 🟩🟩🟩🟩
permission-check 18s 🟩🟩🟩🟩
permission-check 17s 🟩🟩🟩🟩
permission-check 13s 🟩🟩🟩🟩
permission-check 12s 🟩🟩🟩🟩
execution-performance / file_change_determinator 12s 🟩
file_change_determinator 11s 🟩
determine-docker-build-metadata 3s 🟩
permission-check 2s 🟩

🚨 2 jobs on the last run were significantly faster/slower than expected

Job Duration vs 7d avg Delta
rust-build-cached-packages 8m 4m +101%
cli-e2e-tests / run-cli-tests 11m 9m +33%

settingsfeedbackdocs ⋅ learn more about trunk.io



Diagnostics:
bug: struct not defined
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tracked by #12820

@@ -23,3 +23,11 @@ module <SELF>_0 {
}
}
} // end <SELF>_0


Diagnostics:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The various diagnostics added here (in this folder) should be safe and meaningful (that simplifier elimination does not incorrectly remove these errors from being reported).

@@ -176,12 +176,9 @@ const TEST_CONFIGS: Lazy<BTreeMap<&str, TestConfig>> = Lazy::new(|| {
exp_suffix: None,
options: opts
.clone()
.set_experiment(Experiment::AST_SIMPLIFY_FULL, true)
// TODO: this check should not need to be turned off, but some
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was not clear what about the tests were needed to be fixed - they seemed fine to me (enabling it allows various errors to be reported in the stackless bytecode checker, which seems like useful tests).

@@ -433,10 +432,9 @@ const TEST_CONFIGS: Lazy<BTreeMap<&str, TestConfig>> = Lazy::new(|| {
include: vec!["/unreachable-code-remover/"],
exclude: vec![],
exp_suffix: None,
options: opts
.clone()
.set_experiment(Experiment::ABILITY_CHECK, false),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, was not clear why we would disable this, and it does not affect the test output in any meaningful way.

@@ -13,25 +13,10 @@ fun m::test() {
[variant baseline]
fun m::test() {
var $t0: u64
# live vars:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All these changes should not be relevant to the unreachable code remover.

@vineethk vineethk enabled auto-merge (squash) April 10, 2024 15:30

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

✅ Forge suite compat success on aptos-node-v1.10.1 ==> e042c83757d7e0f46050a9dc9c01eadf510bf4f8

Compatibility test results for aptos-node-v1.10.1 ==> e042c83757d7e0f46050a9dc9c01eadf510bf4f8 (PR)
1. Check liveness of validators at old version: aptos-node-v1.10.1
compatibility::simple-validator-upgrade::liveness-check : committed: 6600 txn/s, latency: 5001 ms, (p50: 4900 ms, p90: 6400 ms, p99: 15000 ms), latency samples: 231000
2. Upgrading first Validator to new version: e042c83757d7e0f46050a9dc9c01eadf510bf4f8
compatibility::simple-validator-upgrade::single-validator-upgrade : committed: 1713 txn/s, latency: 16744 ms, (p50: 19500 ms, p90: 24400 ms, p99: 24900 ms), latency samples: 92520
3. Upgrading rest of first batch to new version: e042c83757d7e0f46050a9dc9c01eadf510bf4f8
compatibility::simple-validator-upgrade::half-validator-upgrade : committed: 1541 txn/s, latency: 15853 ms, (p50: 19200 ms, p90: 22500 ms, p99: 23100 ms), latency samples: 90920
4. upgrading second batch to new version: e042c83757d7e0f46050a9dc9c01eadf510bf4f8
compatibility::simple-validator-upgrade::rest-validator-upgrade : committed: 3485 txn/s, latency: 9036 ms, (p50: 9800 ms, p90: 12600 ms, p99: 12900 ms), latency samples: 146400
5. check swarm health
Compatibility test for aptos-node-v1.10.1 ==> e042c83757d7e0f46050a9dc9c01eadf510bf4f8 passed
Test Ok

Copy link
Contributor

✅ Forge suite realistic_env_max_load success on e042c83757d7e0f46050a9dc9c01eadf510bf4f8

two traffics test: inner traffic : committed: 7975 txn/s, latency: 4915 ms, (p50: 4800 ms, p90: 5700 ms, p99: 10200 ms), latency samples: 3445400
two traffics test : committed: 100 txn/s, latency: 1838 ms, (p50: 1800 ms, p90: 2000 ms, p99: 5200 ms), latency samples: 1700
Latency breakdown for phase 0: ["QsBatchToPos: max: 0.209, avg: 0.202", "QsPosToProposal: max: 0.256, avg: 0.234", "ConsensusProposalToOrdered: max: 0.452, avg: 0.430", "ConsensusOrderedToCommit: max: 0.337, avg: 0.325", "ConsensusProposalToCommit: max: 0.774, avg: 0.755"]
Max round gap was 1 [limit 4] at version 1616851. Max no progress secs was 4.314221 [limit 15] at version 1616851.
Test Ok

@vineethk vineethk merged commit d7c50d7 into main Apr 10, 2024
85 of 87 checks passed
@vineethk vineethk deleted the vk/more-full-compiler-passes-in-tests branch April 10, 2024 16:12
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.

[Bug][compiler-v2] Re-enable uninitialized checker for "simplifier-full" tests after fixing them
3 participants