Regression for Native Library Loading in 11.0.5 on Linux
Martijn Verburg
martijnverburg at gmail.com
Mon Feb 3 02:39:30 UTC 2020
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> 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>>:
> >
> > 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