diff --git a/tig-worker/src/main.rs b/tig-worker/src/main.rs index a9993e70..d374aca2 100644 --- a/tig-worker/src/main.rs +++ b/tig-worker/src/main.rs @@ -426,7 +426,27 @@ fn compute_batch( .output()?; if !output.status.success() { - continue; + if output.status.code() == Some(87) { + let mut rt_sig = 0; + let stdout = String::from_utf8_lossy(&output.stdout); + let mut lines = stdout.lines().rev(); + while let Some(line) = lines.next() { + if line.starts_with("Runtime signature: ") { + if let Some(sig) = line.strip_prefix("Runtime signature: ") { + if let Ok(sig) = sig.trim().parse::() { + rt_sig = sig; + break; + } + } + } + } + + println!("Ran out of fuel, runtime signature: {}", rt_sig); + + continue; + } + + return Err(anyhow!("Native wrapper failed: {}", String::from_utf8_lossy(&output.stderr))); } let output_str = String::from_utf8_lossy(&output.stdout);