scheduler: Wait for binaries to appear
As observed with this rocm-smi
to experimental
, it seems that it's possible for a source package to enter a distribution without the binaries having been built:
Traceback (most recent call last):
File "/usr/bin/debci-scheduler", line 566, in <module>
main()
File "/usr/bin/debci-scheduler", line 556, in main
scheduler.collect()
File "/usr/bin/debci-scheduler", line 470, in collect
for dep in self.get_deps_to_check(package):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/debci-scheduler", line 383, in get_deps_to_check
names = self.caches[package.dist].get_source_deps(package.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/debci-scheduler", line 267, in get_source_deps
pkg = self.cache[binname]
~~~~~~~~~~^^^^^^^^^
KeyError: 'rocm-smi'
Verified in an experimental
container: rocm-smi
was in the sources
file for experimental
, but not in the binaries
file.
The solution is simply to skip these packages until binaries appear.
This is certainly not unusual, in fact it should be expected for source-only uploads. It's just interesting that this hasn't occurred before. Perhaps something changed on the Archive side?