Skip to content

c2rust-transpile OOM on Test-Corpus P01 #1907

Description

@spernsteiner
cd Test-Corpus/Public-Tests/P01_sphincs_plus/005_sphincs_PQCgenKAT_sign_blake_128f_simple
cmake -B build . --preset test
bear --output compile_commands.json -- sh -c 'cmake --build build -- driver'
c2rust transpile compile_commands.json --output-dir $PWD/translated_rust --emit-build-files --binary PQCgenKAT_sign --thin-binaries
  • 3558805 works and finishes in about 2.5 seconds
  • 6c10307 (the following commit) runs for 3 minutes, allocates 30GB of RAM, and gets killed by the oomkiller
  • 4aecbea (current master) similarly runs for 3 minutes and OOMs

Successful output:

warning: Skipping duplicate compilation cmd for <...>/test_case/app/src/utils.c
Transpiling blake512.c
Transpiling hash_blake.c
Transpiling sign.c
Transpiling thash_blake_simple.c
Transpiling blake256.c
Transpiling wotsx1.c
Transpiling merkle.c
Transpiling fors.c
Transpiling wots.c
Transpiling PQCgenKAT_sign.c
warning: Unknown CastKind for ConstantArray(CTypeId(30), 9) to ConstantArray(CTypeId(30), 9) cast. Defaulting to BitCast
warning: Unknown CastKind for ConstantArray(CTypeId(30), 9) to ConstantArray(CTypeId(30), 9) cast. Defaulting to BitCast
warning: Unknown CastKind for ConstantArray(CTypeId(30), 9) to ConstantArray(CTypeId(30), 9) cast. Defaulting to BitCast
warning: Unknown CastKind for ConstantArray(CTypeId(30), 9) to ConstantArray(CTypeId(30), 9) cast. Defaulting to BitCast
Transpiling address.c
Transpiling utils.c
Transpiling rng.c
Transpiling utilsx1.c
2.02user 0.29system 0:02.58elapsed 90%CPU (0avgtext+0avgdata 252788maxresident)k
205168inputs+1728outputs (990major+134257minor)pagefaults 0swaps

Unsuccessful outputs:

warning: Skipping duplicate compilation cmd for <...>/test_case/app/src/utils.c
Transpiling blake512.c
Command exited with non-zero status 1
161.42user 17.64system 2:59.70elapsed 99%CPU (0avgtext+0avgdata 28919044maxresident)k
71392inputs+0outputs (403major+8233657minor)pagefaults 0swaps
warning: Skipping duplicate compilation cmd for <...>/test_case/app/src/utils.c
Transpiling blake512.c
Command exited with non-zero status 1
166.36user 20.09system 3:06.76elapsed 99%CPU (0avgtext+0avgdata 29250568maxresident)k
16856inputs+0outputs (144major+8677885minor)pagefaults 0swaps

Kernel logs show the oomkiller firing on c2rust-transpile:

Out of memory: Killed process 109213 (c2rust-transpil) total-vm:32536692kB, anon-rss:26564972kB, file-rss:0kB, shmem-rss:0kB

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions