Skip to content

Commit e9aea84

Browse files
committed
Merge branch 'tickets/DM-43557'
2 parents c9b83e9 + 605b7a7 commit e9aea84

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

python/activator/middleware_interface.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1228,6 +1228,8 @@ def _export_subset(self, exposure_ids: set[int],
12281228
self.central_butler.registry.refresh()
12291229

12301230
with lsst.utils.timer.time_this(_log, msg="export_outputs (transfer)", level=logging.DEBUG):
1231+
# Transfer dimensions created by ingest in case it was never done in
1232+
# central repo (which is normal for dev).
12311233
# Transferring governor dimensions in parallel can cause deadlocks in
12321234
# central registry. We need to transfer our exposure/visit dimensions,
12331235
# so handle those manually.
@@ -1242,14 +1244,15 @@ def _export_subset(self, exposure_ids: set[int],
12421244
"visit_system_membership",
12431245
]:
12441246
if dimension in self.butler.registry.dimensions:
1245-
for record in self.butler.registry.queryDimensionRecords(
1247+
records = self.butler.registry.queryDimensionRecords(
12461248
dimension,
12471249
where="exposure in (exposure_ids)",
12481250
bind={"exposure_ids": exposure_ids},
12491251
instrument=self.instrument.getName(),
12501252
detector=self.visit.detector,
1251-
):
1252-
self.central_butler.registry.syncDimensionData(dimension, record, update=False)
1253+
)
1254+
# If records don't match, this is not an error, and central takes precedence.
1255+
self.central_butler.registry.insertDimensionData(dimension, *records, skip_existing=True)
12531256
transferred = self.central_butler.transfer_from(self.butler, datasets,
12541257
transfer="copy", transfer_dimensions=False)
12551258
if len(transferred) != len(datasets):

0 commit comments

Comments
 (0)