Don't kill already-exited processes, don't log tmp_dir when fetching details

This commit is contained in:
asonix 2023-12-23 13:29:30 -06:00
parent 8a55bc5e6c
commit 6d259a0eea
2 changed files with 11 additions and 13 deletions

View file

@ -1121,7 +1121,7 @@ async fn details_query<S: Store + 'static>(
} }
/// Fetch file details /// Fetch file details
#[tracing::instrument(name = "Fetching details", skip(repo, store, config))] #[tracing::instrument(name = "Fetching details", skip(tmp_dir, repo, store, config))]
async fn details<S: Store + 'static>( async fn details<S: Store + 'static>(
alias: web::Path<Serde<Alias>>, alias: web::Path<Serde<Alias>>,
tmp_dir: web::Data<ArcTmpDir>, tmp_dir: web::Data<ArcTmpDir>,

View file

@ -223,8 +223,7 @@ impl Process {
Ok(Ok(status)) => Err(ProcessError::Status(command, status)), Ok(Ok(status)) => Err(ProcessError::Status(command, status)),
Ok(Err(e)) => Err(ProcessError::Other(e)), Ok(Err(e)) => Err(ProcessError::Other(e)),
Err(_) => { Err(_) => {
child.kill().await.map_err(ProcessError::Other)?; let _ = child.kill().await;
Err(ProcessError::Timeout(command)) Err(ProcessError::Timeout(command))
} }
} }
@ -268,19 +267,18 @@ impl Process {
child.wait().await child.wait().await
}; };
let error = match child_fut.with_timeout(timeout).await { match child_fut.with_timeout(timeout).await {
Ok(Ok(status)) if status.success() => { Ok(Ok(status)) if status.success() => {
guard.disarm(); guard.disarm();
return Ok(()); Ok(())
} }
Ok(Ok(status)) => ProcessError::Status(command2, status), Ok(Ok(status)) => Err(ProcessError::Status(command2, status)),
Ok(Err(e)) => ProcessError::Other(e), Ok(Err(e)) => Err(ProcessError::Other(e)),
Err(_) => ProcessError::Timeout(command2), Err(_) => {
}; child.kill().await.map_err(ProcessError::Other)?;
Err(ProcessError::Timeout(command2))
child.kill().await.map_err(ProcessError::Other)?; }
}
Err(error)
}); });
ProcessRead { ProcessRead {