@@ -143,7 +143,7 @@ def _calibration_package_parameters(
143143) -> dict :
144144 """Return manifest parameters that affect package construction."""
145145 effective_parallel = bool (chunked_matrix and parallel_matrix )
146- return {
146+ params = {
147147 "workers" : workers if not chunked_matrix else None ,
148148 "n_clones" : n_clones ,
149149 "target_config" : target_config ,
@@ -153,6 +153,7 @@ def _calibration_package_parameters(
153153 "parallel_matrix" : effective_parallel ,
154154 "num_matrix_workers" : num_matrix_workers if effective_parallel else None ,
155155 }
156+ return {key : value for key , value in params .items () if value is not None }
156157
157158
158159def get_pinned_sha (branch : str ) -> str :
@@ -1092,6 +1093,15 @@ def run_pipeline(
10921093 expected_input_identities = package_inputs ,
10931094 expected_parameters = package_parameters ,
10941095 )
1096+ if not package_reuse .reusable :
1097+ previous = package_reuse .manifest
1098+ print (f" Package reuse invalidated: { package_reuse .reason } " )
1099+ if previous is not None :
1100+ print (f" prior status: { previous .status } " )
1101+ print (f" prior parameters: { previous .parameters } " )
1102+ print (f" expected parameters: { package_parameters } " )
1103+ print (f" prior inputs: { previous .input_identities } " )
1104+ print (f" expected inputs: { package_inputs } " )
10951105 if package_reuse .reusable :
10961106 _mark_step_reused (
10971107 meta ,
@@ -1502,9 +1512,8 @@ def run_pipeline(
15021512 vol = pipeline_volume ,
15031513 )
15041514
1505- pipeline_volume .reload ()
1506-
1507- # Now wait for H5 builds to finish
1515+ # Now wait for H5 builds to finish. Do not reload the shared
1516+ # volume until the child jobs release SQLite handles.
15081517 print (" Waiting for regional H5 build..." )
15091518 regional_h5_result = regional_h5_handle .get ()
15101519 regional_msg = (
@@ -1514,6 +1523,20 @@ def run_pipeline(
15141523 )
15151524 print (f" Regional H5: { regional_msg } " )
15161525
1526+ national_h5_result = None
1527+ if national_h5_handle is not None :
1528+ print (" Waiting for national H5 build..." )
1529+ national_h5_result = national_h5_handle .get ()
1530+ national_msg = (
1531+ national_h5_result .get ("message" , national_h5_result )
1532+ if isinstance (national_h5_result , dict )
1533+ else national_h5_result
1534+ )
1535+ print (f" National H5: { national_msg } " )
1536+
1537+ pipeline_volume .reload ()
1538+ staging_volume .reload ()
1539+
15171540 if isinstance (regional_h5_result , dict ) and regional_h5_result .get (
15181541 "fingerprint"
15191542 ):
@@ -1542,16 +1565,7 @@ def run_pipeline(
15421565 )
15431566 active_step_manifest = national_h5_manifest
15441567
1545- national_h5_result = None
15461568 if national_h5_handle is not None :
1547- print (" Waiting for national H5 build..." )
1548- national_h5_result = national_h5_handle .get ()
1549- national_msg = (
1550- national_h5_result .get ("message" , national_h5_result )
1551- if isinstance (national_h5_result , dict )
1552- else national_h5_result
1553- )
1554- print (f" National H5: { national_msg } " )
15551569 if isinstance (national_h5_result , dict ) and national_h5_result .get (
15561570 "fingerprint"
15571571 ):
0 commit comments