Bug#1012803: libmariadb-java: Missing AwsIamCredentialPlugin error (libmariadb-java stable(2.7.2-1) and testing(2.7.4-1))

anonymous anonymouse743743 at gmail.com
Tue Jun 14 14:22:45 BST 2022


Package: libmariadb-java
Version: 2.7.4-1
Severity: important
X-Debbugs-Cc: anonymouse743743 at gmail.com

Java 17 refuses to use the jdbc driver for mariadb because of a missing
plugin

This error persists on both version 2.7.2-1 and 2.7.4-1, but is
fixed upstream in the jar file downloaded from mariadb.com for versions
3.0.5 and 2.7.5.

Specific error reproduced in java and jshell binaries:
------------------------------------------------------------------------
java --module-path /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/ --add-modules org.mariadb.jdbc -ea TestJDBC 
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/mariadb-java-client-2.7.4.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.mariadb.jdbc.credential.aws.AwsIamCredentialPlugin not in module
------------------------------------------------------------------------
jshell --module-path /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/ --add-modules org.mariadb.jdbc -ea TestJDBC 
Launching JShell execution engine threw: FailOverExecutionControlProvider: FAILED: 0:jdi:hostname(127.0.0.1) --
  Exception: java.lang.IllegalArgumentException: Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/mariadb-java-client-2.7.4.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.mariadb.jdbc.credential.aws.AwsIamCredentialPlugin not in module

                  jdk.jshell/jdk.jshell.execution.JdiInitiator.listenTarget(JdiInitiator.java:201)
                  jdk.jshell/jdk.jshell.execution.JdiInitiator.<init>(JdiInitiator.java:111)
                  jdk.jshell/jdk.jshell.execution.JdiDefaultExecutionControl.create(JdiDefaultExecutionControl.java:103)
                  jdk.jshell/jdk.jshell.execution.JdiExecutionControlProvider.generate(JdiExecutionControlProvider.java:152)
                  jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:179)
FailOverExecutionControlProvider: FAILED: 1:jdi:launch(true) --
  Exception: java.lang.InternalError: Failed remote launch: java.util.concurrent.ExecutionException: com.sun.jdi.connect.VMStartException: VM initialization failed for: /usr/lib/jvm/java-17-openjdk-amd64/bin/java --add-modules org.mariadb.jdbc --module-path /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4 -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:50629,suspend=y jdk.jshell.execution.RemoteExecutionControl 35629 @ com.sun.jdi.CommandLineLaunch (defaults: home=/usr/lib/jvm/java-17-openjdk-amd64, options=, main=, suspend=true, quote=", vmexec=java) -- {home=home=/usr/lib/jvm/java-17-openjdk-amd64, options=options=--add-modules org.mariadb.jdbc --module-path /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4, main=main=jdk.jshell.execution.RemoteExecutionControl 35629, suspend=suspend=true, quote=quote=", vmexec=vmexec=java}
                  jdk.jshell/jdk.jshell.execution.JdiInitiator.reportLaunchFail(JdiInitiator.java:300)
                  jdk.jshell/jdk.jshell.execution.JdiInitiator.launchTarget(JdiInitiator.java:141)
                  jdk.jshell/jdk.jshell.execution.JdiInitiator.<init>(JdiInitiator.java:110)
                  jdk.jshell/jdk.jshell.execution.JdiDefaultExecutionControl.create(JdiDefaultExecutionControl.java:103)
                  jdk.jshell/jdk.jshell.execution.JdiExecutionControlProvider.generate(JdiExecutionControlProvider.java:152)
      cause: java.util.concurrent.ExecutionException: com.sun.jdi.connect.VMStartException: VM initialization failed for: /usr/lib/jvm/java-17-openjdk-amd64/bin/java --add-modules org.mariadb.jdbc --module-path /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4 -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:50629,suspend=y jdk.jshell.execution.RemoteExecutionControl 35629
FailOverExecutionControlProvider: FAILED: 2:jdi --
  Exception: java.lang.IllegalArgumentException: Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/mariadb-java-client-2.7.4.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.mariadb.jdbc.credential.aws.AwsIamCredentialPlugin not in module

                  jdk.jshell/jdk.jshell.execution.JdiInitiator.listenTarget(JdiInitiator.java:201)
                  jdk.jshell/jdk.jshell.execution.JdiInitiator.<init>(JdiInitiator.java:111)
                  jdk.jshell/jdk.jshell.execution.JdiDefaultExecutionControl.create(JdiDefaultExecutionControl.java:103)
                  jdk.jshell/jdk.jshell.execution.JdiExecutionControlProvider.generate(JdiExecutionControlProvider.java:152)
                  jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:179)
------------------------------------------------------------------------

I poked around and it seems in the metadata requires it but the
actual files are missing from org/mariadb/jdbc/credential/ (no aws
directory)
$unzip -d mdb-2.7.4-1/ /usr/share/maven-repo/org/mariadb/jdbc/mariadb-java-client/2.7.4/mariadb-java-client-2.7.4.jar
$rgrep -i aws mdb-2.7.4-1/META-INF/
mdb-2.7.4-1/META-INF/maven/org.mariadb.jdbc/mariadb-java-client/pom.xml:	<exclude>**/Aws**</exclude>
mdb-2.7.4-1/META-INF/services/org.mariadb.jdbc.credential.CredentialPlugin:org.mariadb.jdbc.credential.aws.AwsIamCredentialPlugin

Comparing to version 2.7.5 from mariadb.com I got
------------------------------------------------------------------------
$ diff -qr mdb-2.7.4-1/ mdb-2.7.5/ | grep Only
Only in mdb-2.7.5/org/mariadb/jdbc/credential: aws
Only in mdb-2.7.5/org/mariadb/jdbc/internal/com/send/authentication/gssapi: WindowsNativeSspiAuthentication.class
------------------------------------------------------------------------

Java Versions:
OpenJDK Runtime Environment (build 17.0.3+7-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.3+7-Debian-1deb11u1, mixed mode, sharing)


-- System Information:
Debian Release: 11.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable'), (1, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-14-amd64 (SMP w/8 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

libmariadb-java depends on no packages.

libmariadb-java recommends no packages.

Versions of packages libmariadb-java suggests:
pn  libjna-java           <none>
pn  libjna-platform-java  <none>
pn  libslf4j-java         <none>

-- no debconf information



More information about the pkg-java-maintainers mailing list