Stream: wasmtime

Topic: OOM when running fuzzers on QEMU


view this post on Zulip Afonso Bordado (Jun 12 2023 at 15:23):

:wave: Hey, I've been trying to run some of the wasmtime's fuzzers on QEMU and I'm running into a OOM error after a few minutes and I'm not sure how to get around this.

I'm currently using this command:

ALLOWED_ENGINES=wasmtime cargo +nightly fuzz run --target=riscv64gc-unknown-linux-gnu  differential -s none --no-default-features -- -rss_limit_mb=30000

But it fails after around 700 executions with ERROR: libFuzzer: out-of-memory (used: 31360Mb; limit: 30000Mb)

Has anyone tried this or know a possible cause? I've only tried this with cranelift-fuzzgen and that target seems to support this, so I'm not sure if we do some special allocation with wasmtime .

Edit: The oom artifacts are not reproducible when running in isolation

view this post on Zulip Alex Crichton (Jun 12 2023 at 15:49):

this may have to do with the pooling allocator and/or VM reservations, but I would also expect that to be "invisible" do the guest and only a host-side implementation detail and if libfuzzer thinks it's OOM-ing then that's the guest determining that, so I'm also not entirely sure...

In any case I haven't seen this myself before, but I also haven't tried running in QEMU before


Last updated: Nov 22 2024 at 16:03 UTC