Better error logging when exec failed

This commit is contained in:
(null)
2023-09-14 12:01:27 -04:00
parent 121fd2a728
commit abe9f65dc2
3 changed files with 21 additions and 13 deletions

View File

@@ -791,12 +791,17 @@ fn main() -> Result<(), ActionError> {
use_tty: terminal,
};
if let Ok(response) = do_exec(&mut conn, request)? {
if let Some(socket) = response.terminal_socket {
_ = attach::run(socket);
match do_exec(&mut conn, request)? {
Ok(response) => {
if let Some(socket) = response.terminal_socket {
_ = attach::run(socket);
}
let exit = n.notified_sync_take_value();
std::process::exit((exit.unwrap_or(2) - 1) as i32)
},
Err(err) => {
eprintln!("{err:?}")
}
let exit = n.notified_sync_take_value();
std::process::exit((exit.unwrap_or(2) - 1) as i32)
}
}
Action::Volume(action) => {

View File

@@ -381,13 +381,16 @@ impl ProcessRunner {
match result {
Ok(spawn_info) => write_response(0, spawn_info).unwrap(),
Err(_err) => write_response(
freebsd::libc::EIO,
serde_json::json!({
"message": "failed to spawn"
}),
)
.unwrap(),
Err(err) => {
error!("exec error: {err:?}");
write_response(
freebsd::libc::EIO,
serde_json::json!({
"message": format!("failed to spawn process in container: {err:?}")
}),
)
.unwrap()
},
}
} else if method == "run_main" {
if let Some(main) = self.container.main_proto.clone() {

View File

@@ -296,7 +296,7 @@ impl Site {
if response.errno == 0 {
Ok(serde_json::from_value(response.value).unwrap())
} else {
ipc_err(freebsd::libc::EIO, "something went wrong")
ipc_err(freebsd::libc::EIO, &format!("something went wrong: {:?}", response.value))
}
}