generated from AgnostiqHQ/covalent-executor-template
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
The purpose of this issue is to ensure that the Braket executor
- returns any stdout and stderr printed by tasks using the mechanism defined in #1380. To do this, the
run()implementation needs to- retrieves the
stdoutandstderrfrom the executor backend -- in the case of AWS Executors, by parsing Cloudwatch logs (see how Braket does this) - printing those strings to
self.task_stdoutandself.task_stderr.
- retrieves the
- distinguish task runtime exceptions -- those raised in the executor backend -- from other exceptions originating from the interaction of Covalent and the executor backend. This is explained in more detail in #1390. When an runtime exception occurs, the
run()implementation should:- Retrieve whatever
stdoutandstderrmessages have already been printed by the task - Ensure that the exception traceback is appended to the task's
stderr. - Print
stdoutandstderrtoself.task_stdoutandself.task_stderr, respectively. - Raise a
TaskRuntimeError.
For examples, see how the dask executor now deals with task runtime exceptions.
- Retrieve whatever
Note: These changes should be implemented in a backward-compatible manner -- so that the new AWSExecutors should work with Covalent 0.202.0post1 (the current stable AWSExecutors work with the latest develop).
Acceptance criteria:
- Any stdout and stderr printed by a task before raising an unhandled exception is retrieved and printed to
self.task_stdoutandself.task_stderrrespectively, whereselfis the executor plugin instance. - If a task raises an exception:
- The traceback is included in the task’s stderr.
- The
run()method raises aTaskRuntimeError.
- The executor plugin remains compatible with Covalent Core `0.202.0post1.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels