Bug #11673

Updated by Nathan Cutler about 5 years ago

I recently moved @ceph-objectstore-tool@ from the "ceph-test" package Debian's debug packages ought to the main "ceph" package, in ticket #11376.

Soon after this was completed, our upgrade test suites began to fail when apt updated ceph-dbg. As one example:

2015-05-15T18:51:18.423 error processing archive /var/cache/apt/archives/ceph-dbg_0.94.1-111-gb69fb89-1trusty_amd64.deb (--unpack):
2015-05-15T18:51:18.423 trying to overwrite '/usr/lib/debug/usr/bin/ceph-objectstore-tool', which is also in package ceph-test-dbg 0.80.9-242-g7d11b19-1trusty
2015-05-15T18:51:18.552 error: subprocess paste was killed by signal (Broken pipe)

Ordinarily this would have been addressed by the following dependency chain:

# apt-get updates "ceph" to a newer version with @objectstore-tool@ present.
# With the @Replaces:@ and @Breaks:@" changes in #11376, the new "ceph" .deb depends on a newer version of "ceph-test" with the @objectstore-tool@ removed, so apt updates that as well.
# The dbg packages
depend on their respective binary packages. This was the newer versions case for many of our ceph and ceph-test, so apt updates them as well.

The problem is with that third step. This Teuthology test uncovered the fact that ceph-test-dbg did not have a specific dependency on ceph-test. When apt updated ceph-test,
packages, but it did was not know it also needed to update the case for ceph-test-dbg as well. or rest-bench-dbg.

The explicit Add the dependencies between -dbg packages and main subpackages are already present for a lot of on the ceph packages that we ship (like ceph itself with ceph-dbg, or ceph-mds and ceph-mds-dbg, etc), but two newer subpackages are missing the explicit dependency: ceph-test-dbg and rest-bench-dbg. relevant binary packages, pinned to "= ${binary:Version}" per convention.