diff --git a/tests/unit/test_tracing.py b/tests/unit/test_tracing.py index ff20f84f18..525876f506 100644 --- a/tests/unit/test_tracing.py +++ b/tests/unit/test_tracing.py @@ -193,11 +193,14 @@ class TestTracing(ZuulTestCase): self.log.debug("Received:\n%s", item) merge_job = self.getSpan('Merge') self.log.debug("Received:\n%s", merge_job) + node_request = self.getSpan('RequestNodes') + self.log.debug("Received:\n%s", node_request) build = self.getSpan('Build') self.log.debug("Received:\n%s", build) jobexec = self.getSpan('JobExecution') self.log.debug("Received:\n%s", jobexec) self.assertEqual(item.trace_id, buildset.trace_id) + self.assertEqual(item.trace_id, node_request.trace_id) self.assertEqual(item.trace_id, build.trace_id) self.assertNotEqual(item.span_id, jobexec.span_id) self.assertTrue(buildset.start_time_unix_nano >= @@ -210,6 +213,8 @@ class TestTracing(ZuulTestCase): buildset.end_time_unix_nano) self.assertEqual(jobexec.parent_span_id, build.span_id) + self.assertEqual(node_request.parent_span_id, + buildset.span_id) self.assertEqual(build.parent_span_id, buildset.span_id) self.assertEqual(merge_job.parent_span_id, diff --git a/zuul/nodepool.py b/zuul/nodepool.py index 1118fe0c27..6a6afce583 100644 --- a/zuul/nodepool.py +++ b/zuul/nodepool.py @@ -84,6 +84,10 @@ class Nodepool(object): del self.election def _sendNodesProvisionedEvent(self, request): + tracing.endSavedSpan(request.span_info, attributes={ + "request_id": request.id, + "state": request.state, + }) tenant_name = request.tenant_name pipeline_name = request.pipeline_name event = model.NodesProvisionedEvent(request.id, request.build_set_uuid) @@ -101,10 +105,6 @@ class Nodepool(object): continue if (request.state in {model.STATE_FULFILLED, model.STATE_FAILED}): - tracing.endSavedSpan(request.span_info, attributes={ - "request_id": request.id, - "state": request.state, - }) self._sendNodesProvisionedEvent(request) # Now resume normal event processing. self.stop_watcher_event.wait()