← Back to team overview

openjdk team mailing list archive

Bug#929685: ca-certificates-java, default-jre-headless, openjdk-11-jre-headless: get rid of the circular dependency

 

Package: ca-certificates-java,default-jre-headless,openjdk-11-jre-headless
Severity: serious
User: debian-qa@xxxxxxxxxxxxxxxx
Usertags: piuparts
Control: found -1 2:1.11-71
Control: found -1 11.0.3+1-1
Control: found -1 20190405
Control: affects -1 + astro-all

Package: default-jre-headless
Version: 2:1.11-71
Depends: openjdk-11-jre-headless, java-common

Package: openjdk-11-jre-headless
Version: 11.0.3+1-1
Depends: ca-certificates-java, ...
Provides: java-runtime-headless, java10-runtime-headless, java11-runtime-headless, java2-runtime-headless, java5-runtime-headless, java6-runtime-headless, java7-runtime-headless, java8-runtime-headless, java9-runtime-headless

Package: ca-certificates-java
Version: 20190405
Depends: ca-certificates (>= 20121114), default-jre-headless | java8-runtime-headless, libnss3 (>= 3.12.10-2~)


Dependency cycles need to be broken by apt/dpkg to configure the
packages. This splitting can be done the wrong way ...
There is at least one piuparts test failing a stetch->buster upgrade
because packages get configured in the wrong order:

...
  Setting up ca-certificates-java (20190405) ...
...
  Setting up default-jre-headless (2:1.11-71) ...
...
  Setting up jython (2.7.1+repack1-3) ...
...
  Setting up jython-stilts (3.1.5-1) ...
  Exception in thread "main" java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
  	at org.python.core.io.BufferedReader.clear(BufferedReader.java:147)
  	at org.python.core.io.BufferedReader.<init>(BufferedReader.java:27)
  	at org.python.core.PyFile.createBuffer(PyFile.java:227)
  	at org.python.core.PyFile.file___init__(PyFile.java:185)
  	at org.python.core.PyFile.file___init__(PyFile.java:178)
  	at org.python.core.PyFile.<init>(PyFile.java:101)
  	at org.python.core.PySystemState.<init>(PySystemState.java:237)
  	at org.python.core.PySystemState.doInitialize(PySystemState.java:1112)
  	at org.python.core.PySystemState.initialize(PySystemState.java:1023)
  	at org.python.core.PySystemState.initialize(PySystemState.java:979)
  	at org.python.core.PySystemState.initialize(PySystemState.java:974)
  	at org.python.util.jython.run(jython.java:263)
  	at org.python.util.jython.main(jython.java:142)
  dpkg: error processing package jython-stilts (--configure):
   installed jython-stilts package post-installation script subprocess returned error exit status 1
...
  Setting up openjdk-11-jre-headless:amd64 (11.0.3+1-1) ...
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
  update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
  update-binfmts: warning: current package is openjdk-11, but binary format already installed by openjdk-8
...

Package: jython-stilts
Depends: jython, ...

Package: jython
Depends: ..., default-jre-headless (>= 2:1.9) | java9-runtime-headless


At the time jython-stilts gets configured, /usr/bin/java is still from
openjdk-8, despite of default-jre-headless 2:1.11 being configured and thus
promising a never java to be available, satisfying the dependency in jython.


The failing piuparts test was run on amd64 with these extra arguments:
  --install-recommends --upgrade-before-dist-upgrade


Andreas

Attachment: astro-all_2.0.log.gz
Description: application/gzip


Follow ups