golemfactory / golem-unlimited

Golem-unlimited

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 Strings 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?