Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#63429 - [jre-openjdk] Native crash when loading certain native libraries
Attached to Project:
Arch Linux
Opened by Lucas S (sailsman63) - Sunday, 11 August 2019, 01:44 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:15 GMT
Opened by Lucas S (sailsman63) - Sunday, 11 August 2019, 01:44 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:15 GMT
|
DetailsDescription:
Attempting to run a java program that uses jogl (jogamp.org) will crash out the JVM with the following error: Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed! Removing the jogl native packages from the program classpath (forcing a fallback to a non-jogl option) allows the program to run normally. This is _new_ behavior. It is not seen in jre10-openjdk or jre8-openjdk, and was not seen in jre-openjdk 12.0.1.u12-1. Additional info: * jre-openjdk 12.0.2.u10-1 * Current glibc version: 2.29-4 * This issue has also been observed with lwjgl3. See https://hub.jmonkeyengine.org/t/solved-jme-does-not-work-at-all-on-modern-java-due-to-a-regression/42112. Steps to reproduce: - Launch a java application that uses the indicated libraries. - Watch the terminal output. - Observe that removing the jogl and gluegen _natives_ libraries prevents this bug. (by stopping the system from attempting the load that crashes) The application that I'm working from is: https://sourceforge.net/projects/aoi/files/ArtOfIllusion/3.1.0/Art%20Of%20Illusion%203.1.0%20Generic%20No-Install.zip (I'm one of the maintainers of that application. Sorry, not duplicated with an Arch package at this time.) The included jogl libraries are copied directly from jogamp.org's current stable deployment. (https://jogamp.org/deployment/jogamp-current/) |
This task depends upon
Closed by Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:15 GMT
Reason for closing: Moved
Additional comments about closing: https://gitlab.archlinux.org/archlinux/p ackaging/packages/java-openjdk/issues/1
Saturday, 25 November 2023, 20:15 GMT
Reason for closing: Moved
Additional comments about closing: https://gitlab.archlinux.org/archlinux/p ackaging/packages/java-openjdk/issues/1
core/glibc 2.29-4
with
extra/jdk11-openjdk 11.0.4.u11-1
extra/jre11-openjdk 11.0.4.u11-1
extra/jre11-openjdk-headless 11.0.4.u11-1
or
extra/jdk-openjdk 12.0.2.u10-1
extra/jre-openjdk 12.0.2.u10-1
extra/jre-openjdk-headless 12.0.2.u10-1
A slightly older version of our application works with the same JDKs. I think it's probably a new or updated dependency which causes the crash though I'm unable to find out the culprit since the "Inconsistency detected by ld.so..." message is the only output and I don't know when it happens. (Pointers welcome!)
On the positive side, simply switching to
aur/jdk11-adoptopenjdk 11.0.4.u11-1 (5 | 0.65) [installed]
OpenJDK Java 11 development kit (AdoptOpenJDK build)
fixed the issue for me.
Asking users to install a non-standard JRE is _not_ a good workaround.
All the similar issues that I have heard about seem to include trying to load 2 or more native libraries in very close succession.
This means that currently I cannot start the client part of the application I'm getting paid to develop. So at least for me, the severity is not "low" anymore.
(Oh, it seems like I still have the working aur/jdk11-adoptopenjdk 11.0.4.u11-1 tarball in my pacman package cache! Lucky me!)
By the way: why is the net full of people having this exact issue, yet I'm unable to find a bug report at https://bugs.openjdk.java.net/?
11495: symbol=__cxa_finalize; lookup in file=/usr/lib/jvm/java-11-openjdk/bin/java [0]
11495: symbol=__cxa_finalize; lookup in file=/usr/lib/jvm/java-11-openjdk/bin/../lib/jli/libjli.so [0]
11495: symbol=__cxa_finalize; lookup in file=/usr/lib/libc.so.6 [0]
11495: binding file /tmp/JxBrowser/7.2/libawt_helper.so [0] to /usr/lib/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.2.5]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/bin/java [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/bin/../lib/jli/libjli.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libc.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libz.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libdl.so.2 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libpthread.so.0 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/lib/server/libjvm.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libstdc++.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libm.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libgcc_s.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/lib/libawt_xawt.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/lib/libawt.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXext.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libX11.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXrender.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXtst.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXi.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/lib/libjava.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libxcb.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/lib/libverify.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXau.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libXdmcp.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libgio-2.0.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libglib-2.0.so.0 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libgobject-2.0.so.0 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libgmodule-2.0.so.0 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libmount.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libresolv.so.2 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libpcre.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libffi.so.6 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libblkid.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/librt.so.1 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/tmp/JxBrowser/7.2/libawt_helper.so [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/libpthread.so.0 [0]
11495: symbol=JAWT_GetAWT; lookup in file=/usr/lib/jvm/java-11-openjdk/bin/../lib/libjawt.so [0]
Inconsistency detected by ld.so: dl-lookup.c: 111: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!
Ok, so I know JAWT_GetAWT is the culprit. That's indeed a JDK function
Header: https://hg.openjdk.java.net/jdk/jdk/file/9d7d74c6f2cb/src/java.desktop/share/native/include/jawt.h#l338
Source: https://hg.openjdk.java.net/jdk/jdk/file/9d7d74c6f2cb/src/java.desktop/unix/native/libjawt/jawt.c#l40
and guessing from the name of header/source, I would assume the last lookup in /usr/lib/jvm/java-11-openjdk/bin/../lib/libjawt.so should have found it.
I've found the bug-tracker there to be very Opaque, not worth signing up for a single bug report. Perhaps this is intentional? Keep drive-by reports to a minimum?
However, this means that only the more dedicated/experienced are likely to post there. Hopefully after doing enough (intelligent) testing so that the report would actually be useful to the team.
That's honestly why I posted here, even though I suspected that the issue was further upstream. I hoped that some of the maintainers of the arch package would be able to help me refine this into a more... actionable report.
Unfortunately, this is still marked as "Unconfirmed" and none of the jre/jdk maintainers has even asked for further information...
Ubuntu is even worse - they just say that affected libraries "Are only compatible with java 8" without justifying that assertion. So... bunch of end users dealing with the same issue, but no one with the know-how or experience able to make a more specific report further upstream.
It is not clear if there were actual code changes involved there, or just compiling the native components against a newer JNI core library.
(I was never able to get the jogamp libraries to build correctly, even when following their directions precisely. They do some rather peculiar things with using one version of javac, while insisting on a different version of the java core classes to compile against. Their instructions assume that there are Global classpath and such, whereas Arch JRE's set all of that up with the launch script)
Not sure what the relevant change was. I did a full system update today; something in there must have fixed the problem. Doesn't seem to have been the glibc update ... I just downgraded glibc back to where it was a few weeks ago (2.30-3), and that doesn't cause the problem to reappear. Beats me.
This seems to be the same bug as reported for Ubuntu here (still unresolved): https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1838740