sematic icon indicating copy to clipboard operation
sematic copied to clipboard

Don't mark remote executions as succeeded until their outputs have been cast/validated

Open augray opened this issue 2 years ago • 0 comments

If the root run is NOT inline, and it returns an output which is not valid for the expected output type, the run can still be marked successful, but the resolver can error out with something like this:

File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/worker.py", line 175, in main
    raise e
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/worker.py", line 148, in main
    resolver.resolve(future)
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/state_machine_resolver.py", line 64, in resolve
    raise e
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/state_machine_resolver.py", line 50, in resolve
    self._wait_for_scheduled_run()
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/cloud_resolver.py", line 123, in _wait_for_scheduled_run
    self._process_run_output(run_id)
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/cloud_resolver.py", line 149, in _process_run_output
    self._update_future_with_value(future, value)
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/state_machine_resolver.py", line 247, in _update_future_with_value
    self._handle_future_failure(future, exception)
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/state_machine_resolver.py", line 225, in _handle_future_failure
    raise exception
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/resolvers/state_machine_resolver.py", line 245, in _update_future_with_value
    value = future.calculator.cast_output(value)
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/calculator.py", line 159, in cast_output
    return self.cast_value(
  File "/main_image.binary.runfiles/pip_deps_sematic/site-packages/sematic/calculator.py", line 185, in cast_value
    raise TypeError(

augray avatar Oct 13 '22 22:10 augray