← Back to team overview

openjdk team mailing list archive

[Bug 1838740] [NEW] libjawt.so inconsistency lets JVM crash

 

Public bug reported:

When running an SWT ui with an embedded AWT/Swing component the library
loading process fails as soon as the user clicks on a JComboBox.

The error visible is: Inconsistency detected by ld.so: dl-lookup.c: 111:
check_match: Assertion `version->filename == NULL || ! _dl_name_match_p
(version->filename, map)' failed!

running the JVM with LD_DEBUG=all exposes the /lib/libjawt.so as the source of the problem.
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/bin/java [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/bin/../lib/jli/libjli.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libz.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libdl.so.2 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libpthread.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libm.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libgcc_s.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libawt.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXext.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libX11.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXrender.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXtst.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXi.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libjava.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libxcb.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libverify.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXau.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXdmcp.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libbsd.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/librt.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXinerama.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libselinux.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libresolv.so.2 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libmount.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libffi.so.6 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libpcre.so.3 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libblkid.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libuuid.so.1 [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/home/rew/.swt/lib/linux/x86_64/libswt-awt-gtk-4926r21.so [0]
      3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/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!

A quick smoke the revealed that the package from adoptOpenJdk does not
have the issues. I could also use the libjawt.so and run my SWT/AWT ui
without any issues.

** Affects: openjdk-lts (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenJDK,
which is subscribed to openjdk-lts in Ubuntu.
https://bugs.launchpad.net/bugs/1838740

Title:
  libjawt.so inconsistency lets JVM crash

Status in openjdk-lts package in Ubuntu:
  New

Bug description:
  When running an SWT ui with an embedded AWT/Swing component the
  library loading process fails as soon as the user clicks on a
  JComboBox.

  The error visible is: Inconsistency detected by ld.so: dl-lookup.c:
  111: check_match: Assertion `version->filename == NULL || !
  _dl_name_match_p (version->filename, map)' failed!

  running the JVM with LD_DEBUG=all exposes the /lib/libjawt.so as the source of the problem.
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/bin/java [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/bin/../lib/jli/libjli.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libc.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libz.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libdl.so.2 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libpthread.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib64/ld-linux-x86-64.so.2 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libm.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libgcc_s.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libawt.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXext.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libX11.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXrender.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXtst.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXi.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libjava.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libxcb.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/lib/libverify.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXau.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXdmcp.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libbsd.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/librt.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libXinerama.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libselinux.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libresolv.so.2 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libmount.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/x86_64-linux-gnu/libffi.so.6 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libpcre.so.3 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libblkid.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/lib/x86_64-linux-gnu/libuuid.so.1 [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/home/rew/.swt/lib/linux/x86_64/libswt-awt-gtk-4926r21.so [0]
        3248:	symbol=JAWT_GetAWT;  lookup in file=/usr/lib/jvm/java-11-openjdk-amd64/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!

  A quick smoke the revealed that the package from adoptOpenJdk does not
  have the issues. I could also use the libjawt.so and run my SWT/AWT ui
  without any issues.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1838740/+subscriptions


Follow ups