diff --git a/src/agent/onefuzz-agent/src/validations.rs b/src/agent/onefuzz-agent/src/validations.rs index 02ca6247f..39c2cf96b 100644 --- a/src/agent/onefuzz-agent/src/validations.rs +++ b/src/agent/onefuzz-agent/src/validations.rs @@ -64,10 +64,12 @@ async fn validate_libfuzzer(config: ValidationConfig) -> Result<()> { let libfuzzer = LibFuzzer::new( &config.target_exe, config.target_options.clone(), - config.target_env.into_iter().collect(), + config.target_env.iter().cloned().collect(), config .setup_folder - .unwrap_or(config.target_exe.parent().unwrap().to_path_buf()), + .clone() + .or_else(|| config.target_exe.parent().map(|p| p.to_path_buf())) + .expect("invalid target_exe"), None::<&PathBuf>, MachineIdentity { machine_id: Uuid::nil(), @@ -103,10 +105,12 @@ async fn get_logs(config: ValidationConfig) -> Result<()> { let libfuzzer = LibFuzzer::new( &config.target_exe, config.target_options.clone(), - config.target_env.into_iter().collect(), + config.target_env.iter().cloned().collect(), config .setup_folder - .unwrap_or(config.target_exe.parent().unwrap().to_path_buf()), + .clone() + .or_else(|| config.target_exe.parent().map(|p| p.to_path_buf())) + .expect("invalid setup_folder"), None::<&PathBuf>, MachineIdentity { machine_id: Uuid::nil(), diff --git a/src/agent/onefuzz-task/src/tasks/task_logger.rs b/src/agent/onefuzz-task/src/tasks/task_logger.rs index b2baa611c..a609bb3d9 100644 --- a/src/agent/onefuzz-task/src/tasks/task_logger.rs +++ b/src/agent/onefuzz-task/src/tasks/task_logger.rs @@ -422,8 +422,8 @@ impl TaskLogger { }) => break, Ok(c) => c, Err(e) => { - error!("{}", e); - break; + error!("task logger failure {}", e); + return Err(e); } }; } @@ -440,7 +440,10 @@ pub struct SpawnedLogger { impl SpawnedLogger { pub async fn flush_and_stop(self, timeout: Duration) -> Result<()> { - let _ = tokio::time::timeout(timeout, self.logger_handle).await; + if let Ok(Err(e)) = tokio::time::timeout(timeout, self.logger_handle).await { + error!("failed to flush and stop task logger {}", e); + return Err(e.into()); + } Ok(()) } }