Regression for Native Library Loading in 11.0.5 on Linux

Marc Streckfuß marc.streckfuss at gmail.com
Mon Feb 3 09:16:55 UTC 2020


Hey David and Martijn,
I've now done some testing locally with three JDKs and I am afraid this
is even more specific: An Ubuntu issue.
I think one of our monkeys also said that they had it on Arch-Linux as
well, which makes this issue more obscure, but:

FAILING:

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1,
mixed mode, sharing)

WORKING:

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment 18.9 (build 11.0.6+10)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10, mixed mode)

Now I also got the second one from AdoptOpenJDK (upstream), but I assume
this is a problme specifically from "-post-Ubuntu-1ubuntu118.04.1"

I guess I should address this directly on launchpad.net?

Thanks for your help so far,
Marc

Am 03.02.20 um 03:39 schrieb Martijn Verburg:
> Hi Marc,
>
> I’m one of the AdoptOpenJDK representatives. Please to come and report
> it to us (openjdk-support repo on our github) sounds like an issue
> that a packaging workaround may be able to solve.  If it’s genuinely a
> generic openjdk issue we can help triage regardless ��
>
> Cheers,
> Martijn
>
> On Mon, 3 Feb 2020 at 14:46, David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
>     On 3/02/2020 10:04 am, Marc Streckfuß wrote:
>     > Hi David,
>     > Thanks in Advance for that swift analysis!
>     >
>     > Actually I am asking on behalf of jMonkeyEngine, but didn't see the
>     > precise post you've outlined.
>     > The hint that this seems to be related to the build environment
>     is a
>     > good one, actually we switched from Oracle 8 to AdoptOpenJDK
>     11.0.5, so
>     > this may come into play.
>     > My intent for posting here was at least to get some eyes on the
>     > situation, as searching the net is mostly a list of confusing
>     reports
>     > with the only solution being going back to 8.
>     >
>     > I wonder one thing, though: Does the JVM statically link against
>     glibc?
>
>     I'm not sure sorry - the detailed build config is not something I'm
>     intimately familiar with. It may be configurable.
>
>     > As usually when the glibc is linked in dynamically, there
>     shouldn't be
>     > many ways this can trigger a bug, like it depends on the runtime
>     > environment and not on the build environment.
>     > Apart from the suggestions on our forums, did you find some clear
>     > statement on the glibc bug? e.g. which version could've
>     triggered it?
>
>     Some of the links I was following were actually for different failure
>     modes so drew blanks. This one is interesting though:
>
>     https://bugs.launchpad.net/ubuntu/+source/gcc-7/+bug/1764701
>
>     Particularly the last post regarding Ubuntu OpenJDK build versus
>     AdoptOpenJDK. I can't quite glean exactly where they think the
>     problem
>     is though.
>
>     > If it really depends on the build environment/JDK Distribution,
>     we can
>     > mark this as solved. I'll do some research and report this to the
>     > AdoptOpenJDK team and lets see what happens.
>
>     It would be really good if someone who can reproduce this can try
>     with
>     11.0.4 and 11.0.5 from OS distribution, AdoptOpenJDK build and Oracle
>     JDK build.
>
>     Cheers,
>     David
>     -----
>
>     >
>     > Thanks for your time,
>     > Marc
>     >
>     > Am Mo., 3. Feb. 2020 um 00:18 Uhr schrieb David Holmes
>     > <david.holmes at oracle.com <mailto:david.holmes at oracle.com>
>     <mailto:david.holmes at oracle.com <mailto:david.holmes at oracle.com>>>:
>     >
>     >     Hi Marc,
>     >
>     >     On 1/02/2020 9:56 pm, Marc Streckfuß wrote:
>     >      > Dear Sirs or Madams,
>     >      > Since posting to the Java Bug System is restricted to OpenJDK
>     >     Authors, I'm
>     >      > asking here for help and maybe someone can create a tracking
>     >     issue on my
>     >      > behalf.
>     >      >
>     >      > We're seeing a problem where loading the "lwjgl2" (
>     >      > https://github.com/LWJGL/lwjgl) native dependencies fails
>     ONLY on
>     >     Linux and
>     >      > ONLY on JDK/JVM 11.
>     >      > I've been told that this only happens on 11.0.5, 11.0.4
>     should be
>     >     fine,
>     >      > however research shows, that this also happens on 11.0.3
>     >      > https://unix.stackexchange.com/q/532054.
>     >      >
>     >      > The issue is:
>     >      >
>     >      > Inconsistency detected by ld.so: dl-lookup.c: 111:
>     check_match:
>     >      > Assertion `version->filename == NULL || ! _dl_name_match_p
>     >      > (version->filename, map)' failed!
>     >      >
>     >      > Technically this issue stems from glib, here:
>     >      >
>     >   
>      https://github.com/lattera/glibc/blob/master/elf/dl-lookup.c#L111,
>     >     but it
>     >      > has to be somehow related to the way the JVM is
>     interacting with
>     >     glibc, as
>     >      > this behavior wasn't there with Java 8.
>     >      > I can't really reliable comment on the state for versions
>     9, 10
>     >     and up
>     >      > until 11.0.4, but 11.0.5 has the problem and 8 doesn't.
>     >      >
>     >      > Sorry for the vague information on this one, but maybe
>     someone
>     >     has an idea
>     >      > or could give this a quick look?
>     >      > I guess if you already have a dev env setup and can step
>     through
>     >     with a
>     >      > debugger, the issue could be trivial.
>     >
>     >     I've done a bit of a google search on this problem and it
>     seems to be a
>     >     somewhat confused situation. I've seen reports of 8 not
>     working, but
>     >     falling back to 8 as fixing it. I've seen 11.0.5 is broken
>     but 11.0.4
>     >     works, but someone else said 11.0.4 was fine. I've followed
>     other
>     >     reports that indicate this all relates to a glibc bug.
>     >
>     >   
>      https://hub.jmonkeyengine.org/t/solved-jme-does-not-work-at-all-on-modern-java-due-to-a-regression/42112/14
>     >
>     >     but also suggests a different solution:
>     >
>     >     "you either need openJDK 11.0.4 (not 11.0.5) or lwjgl3
>     instead of
>     >     lwjgl2
>     >     unfortunately."
>     >
>     >       From what I can tell from the reports that I have found is
>     that the
>     >     problem seems to come and go with OpenJDK builds from
>     different OpenJDK
>     >     distributors. I did not see any reports that conclusively
>     indicated the
>     >     problem was seen on Oracle JDK. My suspicion is that whether
>     or not
>     >     this
>     >     problem appears depends on how the JDK was built i.e. which
>     version of
>     >     glibc it has been linked against. The Oracle JDK binaries
>     for 11.0.4
>     >     and
>     >     11.0.5 seems to have the exact same build environment. I
>     can't comment
>     >     on any binaries from other places e.g. AdoptOpenJDK. This
>     conclusion
>     >     was
>     >     also proposed on the jmonkeyengine post above:
>     >
>     >     "If they’re right, it’s going to depend on what version of
>     glibc you
>     >     jvm
>     >     is using, and possibly what was present when your native
>     payload was
>     >     compiled."
>     >
>     >     Not sure what can be done at the OpenJDK end.
>     >
>     >     Cheers,
>     >     David
>     >
>     >      > Thanks in Advance,
>     >      > Marc Streckfuß
>     >      >
>     >
>
> -- 
> Cheers, Martijn (Sent from Gmail Mobile)


More information about the jdk-dev mailing list