You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ju...@apache.org on 2021/03/18 09:40:17 UTC
[buildstream] 02/05: pullqueue.py: Do not call
_load_artifact_done() on error
This is an automated email from the ASF dual-hosted git repository.
juergbi pushed a commit to branch juerg/build-with-source-push
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 8489630fa6b5dbea35ca4a04fb872112b3592ae0
Author: Jürg Billeter <j...@bitron.ch>
AuthorDate: Wed Mar 17 16:31:42 2021 +0100
pullqueue.py: Do not call _load_artifact_done() on error
It's correct to call `_load_artifact_done()` if the pull was
unsuccessful because the artifact is not available on the server.
However, if an error is raised (e.g. job was terminated or an internal
error), we must not call `_load_artifact_done()` as no artifact object
is available.
---
src/buildstream/_scheduler/queues/pullqueue.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/buildstream/_scheduler/queues/pullqueue.py b/src/buildstream/_scheduler/queues/pullqueue.py
index 925ded0..ecff02c 100644
--- a/src/buildstream/_scheduler/queues/pullqueue.py
+++ b/src/buildstream/_scheduler/queues/pullqueue.py
@@ -21,6 +21,7 @@
# Local imports
from . import Queue, QueueStatus
from ..resources import ResourceType
+from ..jobs import JobStatus
from ..._exceptions import SkipJob
@@ -42,6 +43,10 @@ class PullQueue(Queue):
return QueueStatus.SKIP
def done(self, _, element, result, status):
+
+ if status is JobStatus.FAIL:
+ return
+
element._load_artifact_done()
@staticmethod