Keep the readable half of a provider's error for the settings row
ONNX Runtime's errors open with a source path and a template signature; the first 160 characters of a CUDA failure were all signature. The reason now starts at the first word a person can act on.
This commit is contained in:
@@ -192,8 +192,18 @@ fn time_rung(
|
|||||||
Ok((times[1], key))
|
Ok((times[1], key))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The part of a provider's error a person can act on. ONNX Runtime's
|
||||||
|
/// begin with a source path and a C++ template signature; the words —
|
||||||
|
/// "CUDA failure 999: unknown error", "FAIL : Failed to load library" —
|
||||||
|
/// come after, and the settings row has room for one line of them.
|
||||||
fn first_line(s: &str) -> String {
|
fn first_line(s: &str) -> String {
|
||||||
s.lines().next().unwrap_or("").chars().take(160).collect()
|
let line = s.lines().next().unwrap_or("");
|
||||||
|
let start = ["failure", "FAIL :", "Error:", "error:"]
|
||||||
|
.iter()
|
||||||
|
.filter_map(|m| line.find(m))
|
||||||
|
.min()
|
||||||
|
.unwrap_or(0);
|
||||||
|
line[start..].chars().take(200).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Everything a change of which should re-probe: the runtime and where it
|
/// Everything a change of which should re-probe: the runtime and where it
|
||||||
|
|||||||
Reference in New Issue
Block a user