Hi! On Thu, 2015-01-08 at 15:15:43 +0000, Iain Lane wrote: > Package: dpkg > Version: 1.17.23 > Severity: serious
> [ Reported as RC because it could make packages fail to install > correctly, but I don't have an instance in Debian handy, so feel free > to downgrade ] I don't think this is a bug at all in dpkg, but see below. > Since commit 9ee62ecfc8937f24a82805a424564997042dd984 ("Make the initial > dependtry be 1 instead of 0"), dpkg will in some circumstances configure > the dependencies of a package *after* configuring the package itself. The only effect of that commit was that it removed a run stage from the package processing queue, possibly affecting how packages are ordered in some cases, which has exposed wrong assumptions (for example in debootstrap). But any package depending on that specific ordering was relying on undefined behavior. > And you can reproduce like this, once you've got the dependencies > installed Thanks for the reproducer! > (sid-amd64)root@vivid:/# dpkg --unpack --auto-deconfigure > /var/cache/apt/archives/default-jre-headless_2%3a1.7-52_amd64.deb > /var/cache/apt/archives/ca-certificates-java_20140324_all.deb > /var/cache/apt/archives/openjdk-7-jre-headless_7u71-2.5.3-2_amd64.deb > /var/cache/apt/archives/foo_1.0_all.deb > […] > (sid-amd64)root@vivid:/# dpkg --configure openjdk-7-jre-headless:amd64 > ca-certificates-java:all default-jre-headless:amd64 foo:all > Setting up default-jre-headless (2:1.7-52) ... > Setting up foo (1.0) ... > Setting up openjdk-7-jre-headless:amd64 (7u71-2.5.3-2) ... > Setting up ca-certificates-java (20140324) ... > […] > > Let me know if you need any more info, like debugging output. > > (If a solution isn't immediately apparent, is this commit safe to revert > for the time being?) The problem here is that there's a dependency cycle and dpkg breaks it now in a different place due to the change in the processing queue. But this has been a latent issue or an actual issue (depending on the upgrade path) on the java packages. Here's the cycle: foo -Depends→ default-jre-headless | java6-runtime-headless default-jre-headless -Depends→ openjdk-7-jre-headless default-jre-headless -Provides→ java6-runtime-headless openjdk-7-jre-headless -Depends→ ca-certificates-java openjdk-7-jre-headless -Provides→ java6-runtime-headless ca-certificates-java -Depends→ openjdk-6-jre-headless (>= 6b16-1.6.1-2) | java6-runtime-headless And dpkg decides to do this (from the debug output), after having made no progress so far: ,--- […] D000400: findbreakcyclerecursive openjdk-6-jre-headless <- ca-certificates-java D000400: findbreakcyclerecursive java6-runtime-headless <- ca-certificates-java D000400: findbreakcyclerecursive default-jre-headless:amd64 <- ca-certificates-java D000400: findbreakcyclerecursive openjdk-7-jre-headless:amd64 <- default-jre-headless <- ca-certificates-java D000040: found cycle D000040: cycle broken at default-jre-headless:amd64 -> openjdk-7-jre-headless […] D000001: process queue pkg default-jre-headless:amd64 queue.len 3 progress 1, tr D000400: findbreakcyclerecursive default-jre-headless:amd64 D000400: findbreakcyclerecursive java-common:all <- default-jre-headless D000040: checking dependencies of default-jre-headless:amd64 (- <none>) D000400: checking group ... D000400: checking possibility -> openjdk-7-jre-headless D000400: break cycle so ok and found D000400: found 3 matched 0 possfixbytrig - D000400: checking group ... D000400: checking possibility -> java-common D000400: checking non-provided pkg java-common:all D000400: is installed, ok and found D000400: found 3 D000400: found 3 matched 0 possfixbytrig - D000040: ok 2 msgs >><< D000040: checking Breaks D000400: checking virtbroken java-runtime-headless D000400: checking virtbroken java2-runtime-headless D000400: checking virtbroken java5-runtime-headless D000400: checking virtbroken java6-runtime-headless D000400: checking virtbroken java7-runtime-headless Setting up default-jre-headless (2:1.7-52) ... `--- And that's why the Depends order is not preserved. This needs to be reassigned and fixed somewhere in the Java packages. Thanks, Guillem -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org