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

add CompiledModule and CompiledScript deserializer fuzzer #15494

Merged
merged 4 commits into from
Dec 10, 2024

Conversation

gedigi
Copy link
Contributor

@gedigi gedigi commented Dec 4, 2024

Description

This PR adds a new fuzzer for CompiledModule and CompiledScript deserialization.

How Has This Been Tested?

./fuzz.sh run deserialize_script_module runs successfully

Key Areas to Review

Fuzzer logic

Type of Change

  • New feature
  • Bug fix
  • Breaking change
  • Performance improvement
  • Refactoring
  • Dependency update
  • Documentation update
  • Tests

Which Components or Systems Does This Change Impact?

  • Validator Node
  • Full Node (API, Indexer, etc.)
  • Move/Aptos Virtual Machine
  • Aptos Framework
  • Aptos CLI/SDK
  • Developer Infrastructure
  • Move Compiler
  • Other (specify): No changes in components.

Checklist

  • I have read and followed the CONTRIBUTING doc
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I identified and added all stakeholders and component owners affected by this change as reviewers
  • I tested both happy and unhappy path of the functionality
  • I have made corresponding changes to the documentation

Copy link

trunk-io bot commented Dec 4, 2024

⏱️ 9h 7m total CI duration on this PR
Slowest 15 Jobs Cumulative Duration Recent Runs
forge-e2e-test / forge 1h 23m 🟥🟥🟥🟥 (+1 more)
test-target-determinator 44m 🟩🟩🟩🟩🟩 (+5 more)
execution-performance / test-target-determinator 42m 🟩🟩🟩🟩🟩 (+4 more)
forge-compat-test / forge 32m 🟥🟩🟩
forge-framework-upgrade-test / forge 32m 🟩🟩
check 27m 🟩🟩🟩🟩🟩 (+4 more)
rust-images / rust-all 26m 🟩🟩
check-dynamic-deps 17m 🟩🟩🟩🟩🟩 (+6 more)
forge-framework-upgrade-test / forge 17m 🟥
forge-compat-test / forge 17m 🟥
rust-cargo-deny 16m 🟩🟩🟩🟩🟩 (+5 more)
fetch-last-released-docker-image-tag 15m 🟩🟩🟩🟩🟩 (+5 more)
rust-move-tests 13m 🟩
rust-move-tests 13m 🟩
rust-images / rust-all 13m 🟩

🚨 1 job on the last run was significantly faster/slower than expected

Job Duration vs 7d avg Delta
execution-performance / single-node-performance 11s 18m -99%

settingsfeedbackdocs ⋅ learn more about trunk.io

@gedigi gedigi requested review from zi0Black and GotenJBZ December 4, 2024 20:04
@gedigi gedigi changed the title add ModuleBundle deserializer fuzzer add CompiledModule and CompiledScript deserializer fuzzer Dec 4, 2024
@gedigi gedigi enabled auto-merge (squash) December 4, 2024 20:16

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Ok(_) => Corpus::Keep,
Err(_) => Corpus::Reject,
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we implement an invariant that checks if the deserialized version is different? As @GotenJBZ suggested.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@gedigi gedigi force-pushed the gdg/modulebundle_deserialize branch 2 times, most recently from f0786c3 to 852b605 Compare December 5, 2024 23:47

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@gedigi gedigi force-pushed the gdg/modulebundle_deserialize branch from 852b605 to 3fd4f4b Compare December 6, 2024 00:08
@gedigi gedigi force-pushed the gdg/modulebundle_deserialize branch from 3fd4f4b to 1973551 Compare December 6, 2024 00:18

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

✅ Forge suite realistic_env_max_load success on fd4913761fb10d3881f0328540f9ed7b910866cf

two traffics test: inner traffic : committed: 14810.84 txn/s, latency: 2680.75 ms, (p50: 2700 ms, p70: 2700, p90: 3000 ms, p99: 3300 ms), latency samples: 5631460
two traffics test : committed: 99.97 txn/s, latency: 1397.97 ms, (p50: 1400 ms, p70: 1400, p90: 1500 ms, p99: 1700 ms), latency samples: 1760
Latency breakdown for phase 0: ["MempoolToBlockCreation: max: 1.533, avg: 1.454", "ConsensusProposalToOrdered: max: 0.321, avg: 0.292", "ConsensusOrderedToCommit: max: 0.376, avg: 0.361", "ConsensusProposalToCommit: max: 0.666, avg: 0.653"]
Max non-epoch-change gap was: 0 rounds at version 0 (avg 0.00) [limit 4], 0.53s no progress at version 6372289 (avg 0.20s) [limit 15].
Max epoch-change gap was: 0 rounds at version 0 (avg 0.00) [limit 4], 0.70s no progress at version 2763704 (avg 0.70s) [limit 16].
Test Ok

Copy link
Contributor

✅ Forge suite compat success on 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf

Compatibility test results for 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf (PR)
1. Check liveness of validators at old version: 3c6e693a27339e73520f41030dce8fc9cd504967
compatibility::simple-validator-upgrade::liveness-check : committed: 16907.39 txn/s, latency: 2012.18 ms, (p50: 2100 ms, p70: 2100, p90: 2200 ms, p99: 2400 ms), latency samples: 543160
2. Upgrading first Validator to new version: fd4913761fb10d3881f0328540f9ed7b910866cf
compatibility::simple-validator-upgrade::single-validator-upgrading : committed: 4856.10 txn/s, latency: 6083.37 ms, (p50: 6500 ms, p70: 7200, p90: 7400 ms, p99: 7500 ms), latency samples: 97080
compatibility::simple-validator-upgrade::single-validator-upgrade : committed: 5385.68 txn/s, latency: 6093.22 ms, (p50: 6500 ms, p70: 6600, p90: 6700 ms, p99: 7000 ms), latency samples: 186340
3. Upgrading rest of first batch to new version: fd4913761fb10d3881f0328540f9ed7b910866cf
compatibility::simple-validator-upgrade::half-validator-upgrading : committed: 6814.37 txn/s, latency: 4033.60 ms, (p50: 4500 ms, p70: 4600, p90: 4700 ms, p99: 4800 ms), latency samples: 135780
compatibility::simple-validator-upgrade::half-validator-upgrade : committed: 7449.32 txn/s, latency: 4425.57 ms, (p50: 4700 ms, p70: 4800, p90: 5100 ms, p99: 5300 ms), latency samples: 246820
4. upgrading second batch to new version: fd4913761fb10d3881f0328540f9ed7b910866cf
compatibility::simple-validator-upgrade::rest-validator-upgrading : committed: 4695.01 txn/s, latency: 6035.27 ms, (p50: 5700 ms, p70: 9000, p90: 10800 ms, p99: 11400 ms), latency samples: 79780
compatibility::simple-validator-upgrade::rest-validator-upgrade : committed: 11328.44 txn/s, latency: 2819.30 ms, (p50: 2900 ms, p70: 3000, p90: 3100 ms, p99: 3200 ms), latency samples: 369180
5. check swarm health
Compatibility test for 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf passed
Test Ok

Copy link
Contributor

✅ Forge suite framework_upgrade success on 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf

Compatibility test results for 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf (PR)
Upgrade the nodes to version: fd4913761fb10d3881f0328540f9ed7b910866cf
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1471.04 txn/s, submitted: 1473.70 txn/s, failed submission: 2.67 txn/s, expired: 2.67 txn/s, latency: 2082.20 ms, (p50: 2100 ms, p70: 2200, p90: 2700 ms, p99: 3800 ms), latency samples: 132440
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1429.76 txn/s, submitted: 1432.33 txn/s, failed submission: 2.57 txn/s, expired: 2.57 txn/s, latency: 2174.89 ms, (p50: 2100 ms, p70: 2400, p90: 3000 ms, p99: 4500 ms), latency samples: 122460
5. check swarm health
Compatibility test for 3c6e693a27339e73520f41030dce8fc9cd504967 ==> fd4913761fb10d3881f0328540f9ed7b910866cf passed
Upgrade the remaining nodes to version: fd4913761fb10d3881f0328540f9ed7b910866cf
framework_upgrade::framework-upgrade::full-framework-upgrade : committed: 1408.11 txn/s, submitted: 1410.56 txn/s, failed submission: 2.45 txn/s, expired: 2.45 txn/s, latency: 2223.88 ms, (p50: 2100 ms, p70: 2400, p90: 3300 ms, p99: 4500 ms), latency samples: 126380
Test Ok

@gedigi gedigi merged commit 6dbfb31 into main Dec 10, 2024
46 checks passed
@gedigi gedigi deleted the gdg/modulebundle_deserialize branch December 10, 2024 20:30
danielxiangzl pushed a commit that referenced this pull request Dec 12, 2024
* add CompiledModule and CompiledScript deserializer fuzzer
danielxiangzl pushed a commit that referenced this pull request Dec 12, 2024
* add CompiledModule and CompiledScript deserializer fuzzer
georgemitenkov pushed a commit that referenced this pull request Jan 6, 2025
* add CompiledModule and CompiledScript deserializer fuzzer
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.

3 participants