linux-image-4.8.0-53-generic on 64bit Ubuntu installations causes problems with 32bit Java (e.g., ThreadLocal problems)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Apache Lucene |
New
|
Undecided
|
Uwe Schindler | ||
OpenJDK |
New
|
Undecided
|
|||
linux (Ubuntu) |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
I am running the famous Jenkins server that tests Oracle's Java releases with Apache Lucene. When migrating to new hardware and installing Ubuntu 16.04.2, the tests failed with strange errors:
The system is Ubuntu 16.04.2 (64bits) with linux-image-
If tests are using 32 bit JVM versions, the 32 bit compilation fails in most cases. For 32 bit support we use Multiarch i386 packages and installed libc6. This was same setup as Ubuntu 14.04 with Kernel 4.4. Sometimes the compilation with Apache Ant works, but then it fails horribly during running tests. The most often seen stack trace is:
jenkins@
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) Server VM (build 25.131-b11, mixed mode)
> java.lang.
> at java.lang.
> at java.lang.
> at java.lang.
> at java.lang.
> at org.apache.
> at org.apache.
jenkins@
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+168)
Java HotSpot(TM) Server VM (build 9-ea+168, mixed mode)
> java.lang.
> at __randomizedtes
> at java.base/
> at java.base/
> at java.base/
> at java.base/
> at org.apache.
> at org.apache.
I was not sure what exactly this is caused by and I found out: When updating to the recent linux-hwe-edge kernel (4.10.0-21-generic #23~16.04.1-Ubuntu) the problems are gone, it works as fine as in Ubuntu 14.04 with 4.4 kernel.
So it is not an libc issue or any other hardware-related problem. I think it is caused by some wrongly backported patch. My first guess is some 32bit fix for pthreads, I just don't find the bug report anymore (launchpad search down).
To reproduce this, use the following approach:
- install Ubuntu 16.04.2 with HWE stack on 64 bit platform
- install the i386 multiarch and a basic libc run run 32 bit Java: apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
- download a 32 bit package of Java 8u131 and untar it
- try to compile some larger Java program, e.g. Apache Lucene!
The workaround is currently to go back to 4.4.0 kernel or install the edge HWE (kernel 4.10.0).
Changed in lucene: | |
assignee: | nobody → Uwe Schindler (uwe-thetaphi) |
tags: | added: xenial |
affects: | linux-hwe (Ubuntu) → linux (Ubuntu) |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1693854
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.