Revert "Add always_interesting option to llmp mgr (#2262)" (#2274)

This reverts commit 0f9c82f893b0bb8e91b78c5c17f8d1c8d452669e.
This commit is contained in:
Dongjia "toka" Zhang 2024-06-04 18:53:01 +02:00 committed by GitHub
parent 1556cba426
commit 620835a73f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 32 additions and 83 deletions

View File

@ -495,9 +495,6 @@ where
monitor: MT, monitor: MT,
/// The configuration /// The configuration
configuration: EventConfig, configuration: EventConfig,
/// Consider this testcase as interesting always if true
#[builder(default = false)]
always_interesting: bool,
/// The 'main' function to run for each client forked. This probably shouldn't return /// The 'main' function to run for each client forked. This probably shouldn't return
#[builder(default, setter(strip_option))] #[builder(default, setter(strip_option))]
run_client: Option<CF>, run_client: Option<CF>,
@ -687,7 +684,6 @@ where
// Fuzzer client. keeps retrying the connection to broker till the broker starts // Fuzzer client. keeps retrying the connection to broker till the broker starts
let builder = RestartingMgr::<(), MT, S, SP>::builder() let builder = RestartingMgr::<(), MT, S, SP>::builder()
.always_interesting(self.always_interesting)
.shmem_provider(self.shmem_provider.clone()) .shmem_provider(self.shmem_provider.clone())
.broker_port(self.broker_port) .broker_port(self.broker_port)
.kind(ManagerKind::Client { .kind(ManagerKind::Client {

View File

@ -43,7 +43,7 @@ use crate::{
ProgressReporter, ProgressReporter,
}, },
executors::{Executor, HasObservers}, executors::{Executor, HasObservers},
fuzzer::{Evaluator, EvaluatorObservers, ExecutionProcessor}, fuzzer::{EvaluatorObservers, ExecutionProcessor},
inputs::{NopInput, UsesInput}, inputs::{NopInput, UsesInput},
observers::ObserversTuple, observers::ObserversTuple,
state::{HasExecutions, HasLastReportTime, NopState, State, UsesState}, state::{HasExecutions, HasLastReportTime, NopState, State, UsesState},
@ -59,8 +59,6 @@ where
{ {
/// We only send 1 testcase for every `throttle` second /// We only send 1 testcase for every `throttle` second
pub(crate) throttle: Option<Duration>, pub(crate) throttle: Option<Duration>,
/// Treat the incoming testcase as interesting always without evaluating them
always_interesting: bool,
/// We sent last message at `last_sent` /// We sent last message at `last_sent`
last_sent: Duration, last_sent: Duration,
hooks: EMH, hooks: EMH,
@ -100,7 +98,6 @@ impl LlmpEventManager<(), NopState<NopInput>, NopShMemProvider> {
pub struct LlmpEventManagerBuilder<EMH> { pub struct LlmpEventManagerBuilder<EMH> {
throttle: Option<Duration>, throttle: Option<Duration>,
hooks: EMH, hooks: EMH,
always_interesting: bool,
} }
impl Default for LlmpEventManagerBuilder<()> { impl Default for LlmpEventManagerBuilder<()> {
@ -116,7 +113,6 @@ impl LlmpEventManagerBuilder<()> {
Self { Self {
throttle: None, throttle: None,
hooks: (), hooks: (),
always_interesting: false,
} }
} }
@ -125,17 +121,6 @@ impl LlmpEventManagerBuilder<()> {
LlmpEventManagerBuilder { LlmpEventManagerBuilder {
throttle: self.throttle, throttle: self.throttle,
hooks, hooks,
always_interesting: self.always_interesting,
}
}
/// Set `always_interesting`
#[must_use]
pub fn always_interesting(self, always_interesting: bool) -> LlmpEventManagerBuilder<()> {
LlmpEventManagerBuilder {
throttle: self.throttle,
hooks: self.hooks,
always_interesting,
} }
} }
} }
@ -164,7 +149,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -194,7 +178,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -225,7 +208,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -260,7 +242,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -289,7 +270,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -322,7 +302,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -350,7 +329,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -382,7 +360,6 @@ impl<EMH> LlmpEventManagerBuilder<EMH> {
throttle: self.throttle, throttle: self.throttle,
last_sent: Duration::from_secs(0), last_sent: Duration::from_secs(0),
hooks: self.hooks, hooks: self.hooks,
always_interesting: self.always_interesting,
llmp, llmp,
#[cfg(feature = "llmp_compression")] #[cfg(feature = "llmp_compression")]
compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD), compressor: GzipCompressor::with_threshold(COMPRESS_THRESHOLD),
@ -529,9 +506,7 @@ where
where where
E: Executor<Self, Z> + HasObservers<State = S>, E: Executor<Self, Z> + HasObservers<State = S>,
for<'a> E::Observers: Deserialize<'a>, for<'a> E::Observers: Deserialize<'a>,
Z: ExecutionProcessor<E::Observers, State = S> Z: ExecutionProcessor<E::Observers, State = S> + EvaluatorObservers<E::Observers>,
+ EvaluatorObservers<E::Observers>
+ Evaluator<E, Self>,
{ {
if !self.hooks.pre_exec_all(state, client_id, &event)? { if !self.hooks.pre_exec_all(state, client_id, &event)? {
return Ok(()); return Ok(());
@ -549,10 +524,6 @@ where
} => { } => {
log::info!("Received new Testcase from {client_id:?} ({client_config:?}, forward {forward_id:?})"); log::info!("Received new Testcase from {client_id:?} ({client_config:?}, forward {forward_id:?})");
if self.always_interesting {
let item = fuzzer.add_input(state, executor, self, input)?;
log::info!("Added received Testcase as item #{item}");
} else {
let res = if client_config.match_with(&self.configuration) let res = if client_config.match_with(&self.configuration)
&& observers_buf.is_some() && observers_buf.is_some()
{ {
@ -568,9 +539,7 @@ where
{ {
state.scalability_monitor_mut().testcase_with_observers += 1; state.scalability_monitor_mut().testcase_with_observers += 1;
} }
fuzzer.execute_and_process( fuzzer.execute_and_process(state, self, input, &observers, &exit_kind, false)?
state, self, input, &observers, &exit_kind, false,
)?
} else { } else {
#[cfg(feature = "scalability_introspection")] #[cfg(feature = "scalability_introspection")]
{ {
@ -584,7 +553,6 @@ where
log::info!("Added received Testcase as item #{item}"); log::info!("Added received Testcase as item #{item}");
} }
} }
}
Event::CustomBuf { tag, buf } => { Event::CustomBuf { tag, buf } => {
for handler in &mut self.custom_buf_handlers { for handler in &mut self.custom_buf_handlers {
if handler(state, &tag, &buf)? == CustomBufEventResult::Handled { if handler(state, &tag, &buf)? == CustomBufEventResult::Handled {
@ -718,9 +686,7 @@ where
SP: ShMemProvider, SP: ShMemProvider,
E: HasObservers<State = S> + Executor<Self, Z>, E: HasObservers<State = S> + Executor<Self, Z>,
for<'a> E::Observers: Deserialize<'a>, for<'a> E::Observers: Deserialize<'a>,
Z: ExecutionProcessor<E::Observers, State = S> Z: EvaluatorObservers<E::Observers, State = S> + ExecutionProcessor<E::Observers, State = S>,
+ EvaluatorObservers<E::Observers>
+ Evaluator<E, Self>,
{ {
fn process( fn process(
&mut self, &mut self,
@ -766,9 +732,7 @@ where
EMH: EventManagerHooksTuple<S>, EMH: EventManagerHooksTuple<S>,
S: State + HasExecutions + HasMetadata + HasLastReportTime, S: State + HasExecutions + HasMetadata + HasLastReportTime,
SP: ShMemProvider, SP: ShMemProvider,
Z: ExecutionProcessor<E::Observers, State = S> Z: EvaluatorObservers<E::Observers, State = S> + ExecutionProcessor<E::Observers, State = S>,
+ EvaluatorObservers<E::Observers>
+ Evaluator<E, Self>,
{ {
} }

View File

@ -48,7 +48,7 @@ use crate::{
LlmpEventManager, LlmpShouldSaveState, ProgressReporter, LlmpEventManager, LlmpShouldSaveState, ProgressReporter,
}, },
executors::{Executor, HasObservers}, executors::{Executor, HasObservers},
fuzzer::{Evaluator, EvaluatorObservers, ExecutionProcessor}, fuzzer::{EvaluatorObservers, ExecutionProcessor},
inputs::UsesInput, inputs::UsesInput,
monitors::Monitor, monitors::Monitor,
observers::ObserversTuple, observers::ObserversTuple,
@ -219,9 +219,7 @@ where
EMH: EventManagerHooksTuple<S>, EMH: EventManagerHooksTuple<S>,
S: State + HasExecutions + HasMetadata, S: State + HasExecutions + HasMetadata,
SP: ShMemProvider + 'static, SP: ShMemProvider + 'static,
Z: ExecutionProcessor<E::Observers, State = S> Z: EvaluatorObservers<E::Observers, State = S> + ExecutionProcessor<E::Observers>, //CE: CustomEvent<I>,
+ EvaluatorObservers<E::Observers>
+ Evaluator<E, LlmpEventManager<EMH, S, SP>>,
{ {
fn process(&mut self, fuzzer: &mut Z, state: &mut S, executor: &mut E) -> Result<usize, Error> { fn process(&mut self, fuzzer: &mut Z, state: &mut S, executor: &mut E) -> Result<usize, Error> {
let res = self.llmp_mgr.process(fuzzer, state, executor)?; let res = self.llmp_mgr.process(fuzzer, state, executor)?;
@ -238,9 +236,7 @@ where
EMH: EventManagerHooksTuple<S>, EMH: EventManagerHooksTuple<S>,
S: State + HasExecutions + HasMetadata + HasLastReportTime, S: State + HasExecutions + HasMetadata + HasLastReportTime,
SP: ShMemProvider + 'static, SP: ShMemProvider + 'static,
Z: ExecutionProcessor<E::Observers, State = S> Z: EvaluatorObservers<E::Observers, State = S> + ExecutionProcessor<E::Observers>, //CE: CustomEvent<I>,
+ EvaluatorObservers<E::Observers>
+ Evaluator<E, LlmpEventManager<EMH, S, SP>>,
{ {
} }
@ -406,9 +402,6 @@ where
/// The shared memory provider to use for the broker or client spawned by the restarting /// The shared memory provider to use for the broker or client spawned by the restarting
/// manager. /// manager.
shmem_provider: SP, shmem_provider: SP,
#[builder(default = false)]
/// Consider this testcase as interesting always if true
always_interesting: bool,
/// The configuration /// The configuration
configuration: EventConfig, configuration: EventConfig,
/// The monitor to use /// The monitor to use
@ -494,12 +487,10 @@ where
LlmpConnection::IsClient { client } => { LlmpConnection::IsClient { client } => {
#[cfg(not(feature = "adaptive_serialization"))] #[cfg(not(feature = "adaptive_serialization"))]
let mgr: LlmpEventManager<EMH, S, SP> = LlmpEventManager::builder() let mgr: LlmpEventManager<EMH, S, SP> = LlmpEventManager::builder()
.always_interesting(self.always_interesting)
.hooks(self.hooks) .hooks(self.hooks)
.build_from_client(client, self.configuration)?; .build_from_client(client, self.configuration)?;
#[cfg(feature = "adaptive_serialization")] #[cfg(feature = "adaptive_serialization")]
let mgr: LlmpEventManager<EMH, S, SP> = LlmpEventManager::builder() let mgr: LlmpEventManager<EMH, S, SP> = LlmpEventManager::builder()
.always_interesting(self.always_interesting)
.hooks(self.hooks) .hooks(self.hooks)
.build_from_client( .build_from_client(
client, client,
@ -524,7 +515,6 @@ where
// We are a client // We are a client
#[cfg(not(feature = "adaptive_serialization"))] #[cfg(not(feature = "adaptive_serialization"))]
let mgr = LlmpEventManager::builder() let mgr = LlmpEventManager::builder()
.always_interesting(self.always_interesting)
.hooks(self.hooks) .hooks(self.hooks)
.build_on_port( .build_on_port(
self.shmem_provider.clone(), self.shmem_provider.clone(),
@ -533,7 +523,6 @@ where
)?; )?;
#[cfg(feature = "adaptive_serialization")] #[cfg(feature = "adaptive_serialization")]
let mgr = LlmpEventManager::builder() let mgr = LlmpEventManager::builder()
.always_interesting(self.always_interesting)
.hooks(self.hooks) .hooks(self.hooks)
.build_on_port( .build_on_port(
self.shmem_provider.clone(), self.shmem_provider.clone(),