Pull-labs jobs currently use state=available to mean "ready for an external lab to pick up". Elsewhere in the pipeline, available means "this node has produced a usable result/artifact".
This overload confused send_kcidb: it listens for available nodes and can submit pull-labs jobs to KCIDB before they are actually finished, producing dashboard records with status: NULL.
Short-term fix:
send_kcidb should only submit job, test, and process nodes after state=done.
(46cb4a1 in pipeline)
Long-term fix:
- Add a distinct state such as
prepared for pull-labs jobs waiting to be picked up.
- Make pull-labs workers poll
state=prepared.
- Keep
available for nodes whose outputs/results are actually available.
Pull-labs jobs currently use
state=availableto mean "ready for an external lab to pick up". Elsewhere in the pipeline,availablemeans "this node has produced a usable result/artifact".This overload confused
send_kcidb: it listens foravailablenodes and can submit pull-labs jobs to KCIDB before they are actually finished, producing dashboard records withstatus: NULL.Short-term fix:
send_kcidbshould only submitjob,test, andprocessnodes afterstate=done.(46cb4a1 in pipeline)
Long-term fix:
preparedfor pull-labs jobs waiting to be picked up.state=prepared.availablefor nodes whose outputs/results are actually available.