clusterfuzz icon indicating copy to clipboard operation
clusterfuzz copied to clipboard

Allow job weights to be set manually

Open jonathanmetzman opened this issue 1 year ago • 5 comments

Android and Chrome have both expressed interest in getting more cycles for their engine fuzzers. But it appears impossible to change this manually because our cron job resets weights. Let's figure out a nice way to make the cron job respect the user's wish

jonathanmetzman avatar Apr 10 '24 19:04 jonathanmetzman

CC @marktefftech @letitz

jonathanmetzman avatar Apr 10 '24 19:04 jonathanmetzman

If I read the code correctly, the cron job only mutates FuzzerJob.multiplier values, not FuzzerJob.weight values. Can we simply manually set FuzzerJob.weight instead?

letitz avatar Apr 19 '24 14:04 letitz

Ah, I misread the issue. This is about engine fuzzers. There is indeed no way to manually set weights for libfuzzer and afl fuzz targets, since the weights are clobbered by a cron job. It currently works for centipede targets because there is no support in the cron job for other fuzzing engines.

letitz avatar May 02 '24 12:05 letitz

It seems to me the most straightforward solution here would be to introduce the weight/multiplier distinction for fuzz targets as is done for fuzzers, and have the cron job adjusts multipliers instead of weights. It's pretty simple, and that way it would work just like fuzzer weights for consistency.

letitz avatar May 02 '24 12:05 letitz

I don't have any input on the existing logic for assigning weights and multipliers. Generally speaking I have found it confusing in the past.

The core issue here (at least, for Android) are our host jobs are not running basically at all.

In a design discussion yesterday, it was decided to create a new pool of hosts dedicated specifically for running our jobs.

I just wanted to leave this note in case this decision affects the work items in this ticket.

marktefftech avatar May 02 '24 17:05 marktefftech