AngoraFuzzer / Angora

Angora is a mutation-based fuzzer. The main goal of Angora is to increase branch coverage by solving path constraints without symbolic execution.
Apache License 2.0
916 stars 166 forks source link

angora::bind_cpu::find_free_cpus incompatible with cpuset #41

Closed zjuchenyuan closed 5 years ago

zjuchenyuan commented 5 years ago

when using docker run with parameter --cpuset-cpus 7, angora-fuzzer crashes in angora::bind_cpu::find_free_cpus.

Could you provide a environment variable for disable find_free_cpus?

When using cpuset, you can read this file for usable cpu: /sys/fs/cgroup/cpuset/cpuset.cpus

 INFO  angora::bind_cpu    > Found 1 cores.
thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 7', /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src/libcore/slice/mod.rs:2461:14
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:70
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:58
             at src/libstd/panicking.rs:200
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:215
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:478
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:385
   6: rust_begin_unwind
             at src/libstd/panicking.rs:312
   7: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
   8: core::panicking::panic_bounds_check
             at src/libcore/panicking.rs:61
   9: angora::bind_cpu::find_free_cpus
  10: angora::fuzz_main::fuzz_main
  11: fuzzer::main
  12: std::rt::lang_start::{{closure}}
  13: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:297
  14: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:92
  15: std::rt::lang_start_internal
             at src/libstd/panicking.rs:276
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  16: main
  17: __libc_start_main
  18: _start
 INFO  angora::depot::dump > dump constraints and chart..
spinpx commented 5 years ago

Hi @zjuchenyuan. Thanks for your feedback. We have provided environment variable ANGORA_DISABLE_CPU_BINDING for this case. Please update to newest version.

zjuchenyuan commented 5 years ago

thanks