Skip to content

rust compilation OOMs on CircleCI, causing our CI to flake #19995

@nonsense

Description

@nonsense

Sometimes CI jobs fail due to OOM while compiling our codebase, we should fix this:

https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/122291/workflows/d7c4bd7d-4dc6-4406-8a6a-38dd395a5357/jobs/4783565

   Compiling example-custom-node v0.0.0 (/home/circleci/project/rust/op-reth/examples/custom-node)
error: could not compile `reth-optimism-node` (lib)

Caused by:
  process didn't exit successfully: `/data/mise-data/.rustup/toolchains/1.94.0-x86_64-unknown-linux-gnu/bin/rustc --crate-name reth_optimism_node --edition=2024 op-reth/crates/node/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=1 -C embed-bitcode=no -C debuginfo=line-tables-only -C split-debuginfo=unpacked --deny=rust-2018-idioms '--warn=clippy::all' '--warn=clippy::zero_sized_map_values' '--warn=clippy::while_float' '--warn=clippy::useless_let_if_seq' '--warn=clippy::use-self' '--warn=clippy::unused_rounding' '--warn=clippy::unused_peekable' --deny=unused-must-use --warn=unreachable-pub '--warn=clippy::unnested_or_patterns' '--warn=clippy::unnecessary_struct_initialization' '--warn=clippy::unnecessary_self_imports' --warn=unnameable-types '--warn=clippy::uninhabited_references' '--warn=clippy::type_repetition_in_bounds' '--warn=clippy::tuple_array_conversions' '--warn=clippy::trivial_regex' '--warn=clippy::transmute_undefined_repr' '--warn=clippy::trait_duplication_in_bounds' '--warn=clippy::trailing_empty_array' '--allow=clippy::too_long_first_doc_paragraph' '--warn=clippy::suspicious_operation_groupings' '--warn=clippy::suboptimal_flops' '--warn=clippy::string_lit_chars_any' '--warn=clippy::string_lit_as_bytes' '--warn=clippy::single_char_pattern' '--allow=clippy::significant_drop_tightening' '--allow=clippy::significant_drop_in_scrutinee' --warn=rust-2024-incompatible-pat '--allow=clippy::result_large_err' '--allow=clippy::redundant_pub_crate' '--warn=clippy::redundant_else' '--warn=clippy::redundant-clone' '--warn=clippy::read_zero_byte_vec' '--warn=clippy::path_buf_push_overwrite' '--warn=clippy::or_fun_call' '--warn=clippy::option_as_ref_cloned' '--warn=clippy::option-if-let-else' '--warn=clippy::nonstandard_macro_braces' '--allow=clippy::non_send_fields_in_send_ty' '--warn=clippy::needless_pass_by_ref_mut' '--warn=clippy::needless_for_each' '--warn=clippy::needless_continue' '--allow=clippy::needless_collect' '--warn=clippy::needless_bitwise_bool' '--warn=clippy::naive_bytecount' '--warn=clippy::mutex_integer' --warn=missing-docs --warn=missing-debug-implementations '--warn=clippy::missing-const-for-fn' '--warn=clippy::match_same_arms' '--warn=clippy::manual_string_new' '--warn=clippy::manual_is_variant_and' '--warn=clippy::manual_clamp' '--warn=clippy::manual_assert' '--warn=clippy::large_stack_frames' '--warn=clippy::iter_without_into_iter' '--warn=clippy::iter_with_drain' '--warn=clippy::iter_on_single_items' '--warn=clippy::iter_on_empty_collections' '--warn=clippy::imprecise_flops' '--warn=clippy::implicit_clone' '--warn=clippy::if_then_some_else_none' '--warn=clippy::if_not_else' '--allow=clippy::future_not_send' '--warn=clippy::from_iter_instead_of_collect' '--warn=clippy::flat_map_option' '--allow=clippy::fallible_impl_from' '--warn=clippy::explicit_iter_loop' '--warn=clippy::explicit_into_iter_loop' '--warn=clippy::equatable_if_let' '--warn=clippy::enum_glob_use' '--warn=clippy::empty_line_after_outer_attr' '--warn=clippy::empty_line_after_doc_comments' '--warn=clippy::doc_markdown' '--warn=clippy::derive_partial_eq_without_eq' '--allow=clippy::debug_assert_with_mut_call' '--warn=clippy::dbg_macro' '--warn=clippy::collection_is_never_read' '--allow=clippy::cognitive_complexity' '--warn=clippy::cloned_instead_of_copied' '--warn=clippy::clear_with_drain' '--warn=clippy::branches_sharing_code' '--warn=clippy::borrow_as_ptr' '--allow=clippy::as_ptr_cast_mut' '--warn=rustdoc::all' -C debug-assertions=on -C overflow-checks=off --cfg 'feature="alloy-genesis"' --cfg 'feature="asm-keccak"' --cfg 'feature="default"' --cfg 'feature="js-tracer"' --cfg 'feature="keccak-cache-global"' --cfg 'feature="reth-codec"' --cfg 'feature="reth-e2e-test-utils"' --cfg 'feature="serde_json"' --cfg 'feature="test-utils"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("alloy-genesis", "asm-keccak", "default", "js-tracer", "keccak-cache-global", "reth-codec", "reth-e2e-test-utils", "serde_json", "test-utils"))' -C metadata=e356a90cbc4aebb1 -C extra-filename=-24b2e85b4f246f64 --out-dir /home/circleci/project/rust/target/debug/deps -L dependency=/home/circleci/project/rust/target/debug/deps --extern alloy_consensus=/home/circleci/project/rust/target/debug/deps/liballoy_consensus-c780f9cd998f2dd4.rmeta --extern alloy_genesis=/home/circleci/project/rust/target/debug/deps/liballoy_genesis-410e8e0bd561c777.rmeta --extern alloy_primitives=/home/circleci/project/rust/target/debug/deps/liballoy_primitives-bea1e23dce6eabe0.rmeta --extern alloy_rpc_types_engine=/home/circleci/project/rust/target/debug/deps/liballoy_rpc_types_engine-ff3dd8ddcbe47b82.rmeta --extern alloy_rpc_types_eth=/home/circleci/project/rust/target/debug/deps/liballoy_rpc_types_eth-942481b030892455.rmeta --extern clap=/home/circleci/project/rust/target/debug/deps/libclap-e3909b95f1a74eb3.rmeta --extern eyre=/home/circleci/project/rust/target/debug/deps/libeyre-ffeb50b2d30750d7.rmeta --extern futures_util=/home/circleci/project/rust/target/debug/deps/libfutures_util-77ce88fc965fc806.rmeta --extern humantime=/home/circleci/project/rust/target/debug/deps/libhumantime-33fbcfa649a4d8a1.rmeta --extern op_alloy_consensus=/home/circleci/project/rust/target/debug/deps/libop_alloy_consensus-369ac3e89814cee5.rmeta --extern op_alloy_rpc_types_engine=/home/circleci/project/rust/target/debug/deps/libop_alloy_rpc_types_engine-52e7262c05b3d38e.rmeta --extern op_revm=/home/circleci/project/rust/target/debug/deps/libop_revm-8d2214e5f5ad87f2.rmeta --extern reth_chainspec=/home/circleci/project/rust/target/debug/deps/libreth_chainspec-847e5a9b07efbfb1.rmeta --extern reth_consensus=/home/circleci/project/rust/target/debug/deps/libreth_consensus-80cc4cebc56ed024.rmeta --extern reth_db=/home/circleci/project/rust/target/debug/deps/libreth_db-31d58a656ca097b2.rmeta --extern reth_db_api=/home/circleci/project/rust/target/debug/deps/libreth_db_api-67af3ad2faeebf1d.rmeta --extern reth_e2e_test_utils=/home/circleci/project/rust/target/debug/deps/libreth_e2e_test_utils-702a2de4b170bc52.rmeta --extern reth_evm=/home/circleci/project/rust/target/debug/deps/libreth_evm-011a74a0e7d76059.rmeta --extern reth_network=/home/circleci/project/rust/target/debug/deps/libreth_network-2289101622002f64.rmeta --extern reth_node_api=/home/circleci/project/rust/target/debug/deps/libreth_node_api-da1792ca6490242d.rmeta --extern reth_node_builder=/home/circleci/project/rust/target/debug/deps/libreth_node_builder-f6046893832f5cc1.rmeta --extern reth_node_core=/home/circleci/project/rust/target/debug/deps/libreth_node_core-ae34b70c50231b9b.rmeta --extern reth_optimism_chainspec=/home/circleci/project/rust/target/debug/deps/libreth_optimism_chainspec-64f316d7e10a034b.rmeta --extern reth_optimism_consensus=/home/circleci/project/rust/target/debug/deps/libreth_optimism_consensus-5f56569724daedc0.rmeta --extern reth_optimism_evm=/home/circleci/project/rust/target/debug/deps/libreth_optimism_evm-7db134ea5f909a89.rmeta --extern reth_optimism_exex=/home/circleci/project/rust/target/debug/deps/libreth_optimism_exex-451f4144e774a836.rmeta --extern reth_optimism_forks=/home/circleci/project/rust/target/debug/deps/libreth_optimism_forks-29bf31acd14e0150.rmeta --extern reth_optimism_payload_builder=/home/circleci/project/rust/target/debug/deps/libreth_optimism_payload_builder-13fbb9adf5d9e302.rmeta --extern reth_optimism_primitives=/home/circleci/project/rust/target/debug/deps/libreth_optimism_primitives-2685388ca999b352.rmeta --extern reth_optimism_rpc=/home/circleci/project/rust/target/debug/deps/libreth_optimism_rpc-af948d0df5d9da70.rmeta --extern reth_optimism_storage=/home/circleci/project/rust/target/debug/deps/libreth_optimism_storage-db2c390123de6a3d.rmeta --extern reth_optimism_trie=/home/circleci/project/rust/target/debug/deps/libreth_optimism_trie-d7a3fb42fd015384.rmeta --extern reth_optimism_txpool=/home/circleci/project/rust/target/debug/deps/libreth_optimism_txpool-1a62e23e52225479.rmeta --extern reth_payload_builder=/home/circleci/project/rust/target/debug/deps/libreth_payload_builder-111b470bdb151683.rmeta --extern reth_primitives_traits=/home/circleci/project/rust/target/debug/deps/libreth_primitives_traits-eb908b99e3df76d4.rmeta --extern reth_provider=/home/circleci/project/rust/target/debug/deps/libreth_provider-841c1ea0d346970e.rmeta --extern reth_rpc_api=/home/circleci/project/rust/target/debug/deps/libreth_rpc_api-f3b8b1eaa3156473.rmeta --extern reth_rpc_engine_api=/home/circleci/project/rust/target/debug/deps/libreth_rpc_engine_api-17bffa88b6b5ad2e.rmeta --extern reth_rpc_server_types=/home/circleci/project/rust/target/debug/deps/libreth_rpc_server_types-9ffc5fd42eabbdc1.rmeta --extern reth_tasks=/home/circleci/project/rust/target/debug/deps/libreth_tasks-8182a21a9cfceaa6.rmeta --extern reth_tracing=/home/circleci/project/rust/target/debug/deps/libreth_tracing-3fe87a8fbac17388.rmeta --extern reth_transaction_pool=/home/circleci/project/rust/target/debug/deps/libreth_transaction_pool-f1da95128b6e830e.rmeta --extern reth_trie_common=/home/circleci/project/rust/target/debug/deps/libreth_trie_common-bf38bbf4afea3b65.rmeta --extern revm=/home/circleci/project/rust/target/debug/deps/librevm-3205e26fa4dab01b.rmeta --extern serde=/home/circleci/project/rust/target/debug/deps/libserde-a0f3d872343bad17.rmeta --extern serde_json=/home/circleci/project/rust/target/debug/deps/libserde_json-bdcf70f144e0f86e.rmeta --extern tokio=/home/circleci/project/rust/target/debug/deps/libtokio-a9f405276296cdf0.rmeta --extern tracing=/home/circleci/project/rust/target/debug/deps/libtracing-3ee069e70243f826.rmeta --extern url=/home/circleci/project/rust/target/debug/deps/liburl-1744d1c34484a629.rmeta -L native=/home/circleci/project/rust/target/debug/build/sha3-asm-fd77c2294060fb43/out -L native=/home/circleci/project/rust/target/debug/build/c-kzg-71c98191f79f1dd1/out -L native=/home/circleci/project/rust/target/debug/build/blst-58df62af72ac3b1a/out -L native=/home/circleci/project/rust/target/debug/build/secp256k1-sys-9b4183a216773e7a/out -L native=/home/circleci/project/rust/target/debug/build/ring-bbaf89a13d73ab28/out -L native=/home/circleci/project/rust/target/debug/build/zstd-sys-ee2ecd8f7055b3a2/out -L native=/home/circleci/project/rust/target/debug/build/gmp-mpfr-sys-82faffb5990267f2/out/lib -L native=/home/circleci/project/rust/target/debug/build/secp256k1-sys-1e00875a1c566891/out -L native=/home/circleci/project/rust/target/debug/build/reth-mdbx-sys-68ac5c0589bb91c7/out -L native=/home/circleci/project/rust/target/debug/build/tracy-client-sys-dfb1221ac7fb1ae5/out -L native=/home/circleci/project/rust/target/debug/build/openssl-sys-6ca64a93ba2e75fb/out/openssl-build/install/lib -L native=/home/circleci/project/rust/target/debug/build/aws-lc-sys-7536890e3e2aff8d/out -L native=/home/circleci/project/rust/target/debug/build/blake3-58919361073d9d64/out -L native=/home/circleci/project/rust/target/debug/build/blake3-58919361073d9d64/out -L native=/home/circleci/project/rust/target/debug/build/lz4-sys-1a67d5b8060dab68/out -L native=/home/circleci/project/rust/target/debug/build/tikv-jemalloc-sys-0c23b1d4f1eb9148/out/build/lib -L native=/home/circleci/project/rust/target/debug/build/librocksdb-sys-8a02e79353a25308/out -L native=/home/circleci/project/rust/target/debug/build/librocksdb-sys-8a02e79353a25308/out -L native=/home/circleci/project/rust/target/debug/build/bzip2-sys-316a199833f8d939/out/lib -L native=/home/circleci/project/rust/target/debug/build/libz-sys-ab5f9b4b5982e481/out/lib -L native=/home/circleci/project/rust/target/debug/build/libz-sys-ab5f9b4b5982e481/out/lib` (signal: 9, SIGKILL: kill)
error: command `/data/mise-data/.rustup/toolchains/1.94.0-x86_64-unknown-linux-gnu/bin/cargo test --no-run --message-format json-render-diagnostics --workspace --all-features` exited with code 101
error: Recipe `test-unit` failed on line 56 with exit code 101

Exited with code exit status 101

Metadata

Metadata

Assignees

No one assigned

    Labels

    M-needs-triageMeta: this issue needs to be labelled

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions