The errors in case of an execution error should be more structured
marmistrz opened this issue · comments
In case of an ExecutionError
in sync_exec
, all that is return is the Display
representation of the Error, in other words a flat String
. This makes it impossible to show reasonable error messages in client applications. For instance:
failed to execute command: /home/marcin/.local/share/golemunlimited/data/sessions/hd/43286041-2eb6-4d38-9014-9d90f2218135/mpirun, ["-n", "2", "--hostfile", "hostfile", "/tmp/game-life", "2", "1", "12000", "10"], Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "--------------------------------------------------------------------------\nAll nodes which are allocated for this job are already filled.\n--------------------------------------------------------------------------\n" }
This may be removed from the gumpi milestone depending on how #238 is designed.
Also, when updating a PeerSession when we receive a ProcessingError, we apparently receive a Vec<String>
, where the last one is the failed operation (is it actually true?). Still the String
s for the commands that have succeeded are not consistent - e.g. (IIRC) DownloadFile
return "OK"
in hdman but "200 OK (sc)"
in dockerman.
Stale issue message
@prekucki is this still relevant or has this issue been addressed?