CalcJob
: do not pause when exception thrown in the presubmit
#3699
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3687
The
presubmit
call of theCalcJob
has recently been moved to theaiida.engine.processes.calcjobs.tasks.task_upload_job
which is wrappedin the exponential backoff mechanism. The latter was introduced to
recover from transient problems such as connection problems during the
actual upload to a remote machine. However it should not catch exception
from the
presubmit
call which are not actually transient and thus notautomatically recoverable. In this case the process should simply
except.
Here we test this by mocking the presubmit to raise an exception and
check that it is bubbled up and the process does not end up in a paused
state. To prevent the test from blocking in the case the process gets
put in the paused state erroneously, we put a timeout on the test for
which we need the
pytest-timeout
plugin.