You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In our project, we are setting up a fuzzer with a restarting manager. Also, instead of using an InProcessExecutor we need to run an executable binary, so we want to use the CommandExecutor.
However, writing the fuzzer in this way gives a compilation error regarding some trait bounds are not satisfied.
To Reproduce
Minimizing the scenario, I have reached the following example.
which gives the following compile error at the last step.
error[E0277]: the trait bound `CommandExecutor<LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, StdCommandConfigurator, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>: Executor<LlmpEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>` is not satisfied
--> src/restarting.rs:101:33
|
101 | .fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)
| --------- ^^^^^^^^^^^^^ the trait `Executor<LlmpEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>` is not implemented for `CommandExecutor<LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, StdCommandConfigurator, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>`
| |
| required by a bound introduced by this call
|
= help: the trait `Executor<EM, Z>` is implemented for `CommandExecutor<EM, OT, S, T, Z>`
= note: required for `LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, ...>, ...>` to implement `EventProcessor<CommandExecutor<LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, StdCommandConfigurator, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>`
= note: the full type name has been written to '.../baby_fuzzer-5d2cae3cc286ad0f.long-type-13577678708692025691.txt'
= note: required for `StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, ...>>, ..., ..., ...>` to implement `Fuzzer<CommandExecutor<LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, StdCommandConfigurator, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>, LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (StdMutationalStage<CommandExecutor<LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, (), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, StdCommandConfigurator, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>, LlmpRestartingEventManager<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>, unix_shmem::default::CommonUnixShMemProvider>, BytesInput, StdScheduledMutator<BytesInput, (BitFlipMutator, (ByteFlipMutator, (ByteIncMutator, (ByteDecMutator, (ByteNegMutator, (ByteRandMutator, (ByteAddMutator, (WordAddMutator, (DwordAddMutator, (QwordAddMutator, (ByteInterestingMutator, (WordInterestingMutator, (DwordInterestingMutator, (BytesDeleteMutator, (BytesDeleteMutator, (BytesDeleteMutator, (BytesDeleteMutator, (BytesExpandMutator, (BytesInsertMutator, (BytesRandInsertMutator, (BytesSetMutator, (BytesRandSetMutator, (BytesCopyMutator, (BytesInsertCopyMutator, (BytesSwapMutator, (CrossoverInsertMutator, (CrossoverReplaceMutator, ()))))))))))))))))))))))))))), StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, StdFuzzer<QueueScheduler<StdState<BytesInput, InMemoryCorpus<BytesInput>, RomuDuoJrRand, OnDiskCorpus<BytesInput>>>, ConstFeedback, CrashFeedback, ()>>, ())>`
= note: the full type name has been written to '.../baby_fuzzer-5d2cae3cc286ad0f.long-type-2807299872897195628.txt'
Expected behavior
Being able to replace the InProcessExecutor with other types of executors. In other words, the manager should be independently set from the executor.
Additional context
Replacing the manager or the executor solves the issue.
The text was updated successfully, but these errors were encountered:
In our project, we are setting up a fuzzer with a restarting manager. Also, instead of using an
InProcessExecutor
we need to run an executable binary, so we want to use theCommandExecutor
.However, writing the fuzzer in this way gives a compilation error regarding some trait bounds are not satisfied.
To Reproduce
Minimizing the scenario, I have reached the following example.
Full example
which gives the following compile error at the last step.
Expected behavior
Being able to replace the
InProcessExecutor
with other types of executors. In other words, the manager should be independently set from the executor.Additional context
Replacing the manager or the executor solves the issue.
The text was updated successfully, but these errors were encountered: