Skip to content

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?