diff --git a/coprocessor/fhevm-engine/scheduler/src/dfg/scheduler.rs b/coprocessor/fhevm-engine/scheduler/src/dfg/scheduler.rs index 42d9ec9327..2a12215005 100644 --- a/coprocessor/fhevm-engine/scheduler/src/dfg/scheduler.rs +++ b/coprocessor/fhevm-engine/scheduler/src/dfg/scheduler.rs @@ -483,7 +483,7 @@ async fn execute_partition( for (h, i) in tx_inputs.iter_mut() { if i.is_none() { let Some(Ok(ct)) = res.get(h) else { - warn!(target: "scheduler", {transaction_id = ?tid }, + warn!(target: "scheduler", {transaction_id = ?hex::encode(tid) }, "Missing input to compute transaction - skipping"); for nidx in dfg.graph.node_identifiers() { let Some(node) = dfg.graph.node_weight_mut(nidx) else { @@ -510,7 +510,7 @@ async fn execute_partition( // Re-randomise inputs of the transaction - this also // decompresses ciphertexts if let Err(e) = re_randomise_transaction_inputs(tx_inputs, &tid, gpu_idx, cpk.clone()) { - error!(target: "scheduler", {transaction_id = ?tid, error = ?e }, + error!(target: "scheduler", {transaction_id = ?hex::encode(tid), error = ?e }, "Error while re-randomising inputs"); for nidx in dfg.graph.node_identifiers() { let Some(node) = dfg.graph.node_weight_mut(nidx) else { @@ -536,7 +536,7 @@ async fn execute_partition( // If re-randomisation is not available (e.g., on GPU), // only decompress ciphertexts if let Err(e) = decompress_transaction_inputs(tx_inputs, &tid, gpu_idx, cpk.clone()) { - error!(target: "scheduler", {transaction_id = ?tid, error = ?e }, + error!(target: "scheduler", {transaction_id = ?hex::encode(tid), error = ?e }, "Error while decompressing inputs"); for nidx in dfg.graph.node_identifiers() { let Some(node) = dfg.graph.node_weight_mut(nidx) else { @@ -639,7 +639,7 @@ fn try_schedule_node( cts.push(i); } else { // That should not be possible as we called the checker. - error!(target: "scheduler", { handle = ?node.result_handle }, "Computation missing inputs"); + error!(target: "scheduler", { handle = ?hex::encode(&node.result_handle) }, "Computation missing inputs"); return; } } diff --git a/coprocessor/fhevm-engine/tfhe-worker/src/tfhe_worker.rs b/coprocessor/fhevm-engine/tfhe-worker/src/tfhe_worker.rs index 60da9e9ee9..5e45a9bf52 100644 --- a/coprocessor/fhevm-engine/tfhe-worker/src/tfhe_worker.rs +++ b/coprocessor/fhevm-engine/tfhe-worker/src/tfhe_worker.rs @@ -516,6 +516,11 @@ async fn upload_transaction_graph_results<'a>( CoprocessorError::SchedulerError(SchedulerError::MissingInputs) ) { uncomputable.push((result.handle.clone(), result.transaction_id.clone())); + // Make sure we don't mark this as an error since this simply means that the + // inputs weren't available when we tried scheduling these operations. + // Setting them as uncomputable will postpone them with an exponential backoff + // and they will be retried later. + continue; } } WORKER_ERRORS_COUNTER.inc();