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

#1012803#5
Date:
2022-06-14 13:22:45 UTC
From:
To:
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)

#1012803#10
Date:
2022-06-15 04:34:46 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
mariadb-connector-java, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1012803@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
tony mancill <tmancill@debian.org> (supplier of updated mariadb-connector-java package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Tue, 14 Jun 2022 21:08:33 -0700
Source: mariadb-connector-java
Architecture: source
Version: 2.7.5-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Changed-By: tony mancill <tmancill@debian.org>
Closes: 1012803
Changes:
 mariadb-connector-java (2.7.5-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream version 2.7.5 (Closes: #1012803)
Checksums-Sha1:
 ca4e2782ae9cab210585a50918e1bb5d58bcf32c 2291 mariadb-connector-java_2.7.5-1.dsc
 5315499fb497f62faa2902cf987f80b7a651bbe2 782332 mariadb-connector-java_2.7.5.orig.tar.xz
 b7172fb8195f0b6b9e20502f2cd5e79575a35830 7004 mariadb-connector-java_2.7.5-1.debian.tar.xz
 48cb8c8524b746bad4998f5098b1e55cb49c8fc1 12905 mariadb-connector-java_2.7.5-1_amd64.buildinfo
Checksums-Sha256:
 2c6ea484ee0feea47c0de5d30196958888230ab1e139fee0a6a0939e42710ac7 2291 mariadb-connector-java_2.7.5-1.dsc
 cc834a92658921c8c705b7dad08531948984c5afc79dcfaa61260548b309c60f 782332 mariadb-connector-java_2.7.5.orig.tar.xz
 f1ed3bbf71ae6d3c3832166d967918c365bebd87da20d7b52ef29ea94e13c9f0 7004 mariadb-connector-java_2.7.5-1.debian.tar.xz
 55948f5bb0dd19ebade7052d548ce99b9d20dc007da458ff805c3687dcac0b6d 12905 mariadb-connector-java_2.7.5-1_amd64.buildinfo
Files:
 3194b4075aec1e9c77184f3205ad2e69 2291 java optional mariadb-connector-java_2.7.5-1.dsc
 949af49eb8a584b48230c276b61a6211 782332 java optional mariadb-connector-java_2.7.5.orig.tar.xz
 058ad4831715a1c08e0745567787d435 7004 java optional mariadb-connector-java_2.7.5-1.debian.tar.xz
 dfa60edb473deaa8e4d09f2704c674b0 12905 java optional mariadb-connector-java_2.7.5-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEE5Qr9Va3SequXFjqLIdIFiZdLPpYFAmKpXKkUHHRtYW5jaWxs
QGRlYmlhbi5vcmcACgkQIdIFiZdLPpZoERAAlQdQoEYpyuJFVR4ekBG1zX7zTvFh
6zKOJjep6nzURcV4R55e4LfP5FqoAYjDRgNQ6T7TWe5KK7CBoOpcEgiB+2+3HAPv
REPniyRBr8tszGLLle8hRe6VUM56WyOcCXdFA2Aoy9dQ4Fvn7Ax4T7HhJWmY876+
fxwayHMR2GYHqD50SkCTFyp+sJP3d4rgbHb3dT1IDmVD91kXybfDtUqSibvhow1I
/F9IJJVvJsS61FarvUW5FMCahE0OW00DcXbmOXiU36JZuQPMibs3xouijWP2qx4T
9qsGGmHH3V7pipGqHPu9Ss5ZeLxKO+P1ZWKqTSEsAm9xLSCQu4+6rb8cZelp064k
e3863z7ZwYDVpw/SkaF6AI4eV1i9bhW2OVJ1tcpGjl9/CJBR2uCpgUTS5dapaLS0
KATKDdEYpzzvUsNkjLe15gpNaKm+zD3hyI3GxIsyngKZmFi/l7JoM5fXYA6+6iUP
WDcvoPwQ8TOgYBz2qCQCWkFbdvzccAzFheoTqVoBWGrvmy8AXU89ebsWvaBPbeO+
1bJEv7J506UT9baOtjkFizedAfqvjIqaicpqjiAB5RPEZhSqczkWIhtf+9CCEMUU
1T6mAT83MHtBDw2FWyveCfZ6F9AyXNQK5EzxpI3tqLKtGMiNdPZkSYgABYJCqWAQ
CpJC2agZGvhhIM4=
=da+h
-----END PGP SIGNATURE-----