No more free CPUs py-afl-fuzz

638 views
Skip to first unread message

floyd

unread,
Feb 2, 2017, 4:12:41 AM2/2/17
to afl-users
Hi everybody

I had a pretty strange case today when running "py-afl-fuzz -C". The
following command worked fine for a couple of starts (and I Ctrl-C
them), but then at one point (if I remember correctly after 4 restarts
and I have 4 CPU cores):

$ py-afl-fuzz -C -i /opt/crashes/ -o /opt/crashes-were-rabitted -m none
-t 1500+ -- /opt/fuzz-afl.py

afl-fuzz 2.38b by <lca...@google.com>
[+] You have 4 CPU cores and 1 runnable tasks (utilization: 25%).
[+] Try parallel jobs - see /usr/local/share/doc/afl/parallel_fuzzing.txt.
[*] Checking CPU core loadout...

[-] Uh-oh, looks like all 4 CPU cores on your system are allocated to
other instances of afl-fuzz (or similar CPU-locked tasks). Starting
another fuzzer on this machine is probably a bad plan, but if you are
absolutely sure, you can set AFL_NO_AFFINITY and try again.

[-] PROGRAM ABORT : No more free CPU cores
Location : bind_to_free_cpu(), afl-fuzz.c:484

When I check top there is nothing using any CPU, all 4 cores are idle.

Any ideas?

I can easily workaround with AFL_NO_AFFINITY but that's strange

cheers,
floyd

floyd

unread,
Feb 2, 2017, 4:16:01 AM2/2/17
to afl-...@googlegroups.com
Correction: I didn't Ctrl-C the first four session, but afl-fuzz -C
found an input in the directory that wasn't crashing and quit:

[-] PROGRAM ABORT : Test case 'id:000034,orig:crash6' does *NOT* crash
Location : perform_dry_run(), afl-fuzz.c:2729
--
floyd
@floyd_ch
http://www.floyd.ch

Jakub Wilk

unread,
Feb 2, 2017, 6:40:00 AM2/2/17
to afl-...@googlegroups.com
* floyd <fl...@floyd.ch>, 2017-02-02, 10:12:
>[-] PROGRAM ABORT : No more free CPU cores
> Location : bind_to_free_cpu(), afl-fuzz.c:484
>
>When I check top there is nothing using any CPU, all 4 cores are idle.

afl-fuzz checks only for existence of processes bound to a specific CPU; it
doesn't check if they are actually doing anything. So maybe the processes in
question are idle?

You can get the list of all processes bound to a specific CPU with:

$ grep -E '^Cpus_allowed_list:[^-,]+$' /proc/*/status | cut -d / -f3 | xargs | tr ' ' ',' | xargs ps -o pid,args --pid

--
Jakub Wilk

floyd

unread,
Feb 2, 2017, 2:55:43 PM2/2/17
to afl-...@googlegroups.com
Thanks for that! There were really some stray processes hanging around,
not using any CPU. Nothing a "kill -9" couldn't solve

Best regards,
floyd
Reply all
Reply to author
Forward
0 new messages