Bug 997633

Summary: Adding com.sun.management.jmxremote system property to 32-bit JVM commandline crashes JVM
Product: Red Hat Enterprise Linux 6 Reporter: Dan Mace <dmace>
Component: java-1.7.0-openjdkAssignee: Omair Majid <omajid>
Status: CLOSED ERRATA QA Contact: Lukáš Zachar <lzachar>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.5CC: admiller, dbhole
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-21 11:14:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 990564    

Description Dan Mace 2013-08-15 20:23:56 UTC
Description of problem:

Adding '-Dcom.sun.management.jmxremote' to the java commandline crashes the 32bit JVM immediately.


Version-Release number of selected component (if applicable):

java-1.7.0-openjdk-1.7.0.25-2.4.1.0.el6.i686


How reproducible:

Although you can reproduce it by executing a trivial compiled java program, the results are more easily reproducible by just executing the following command:

  java -Dcom.sun.management.jmxremote

Alternatively, compile the following trivial class (JmxBug.java):

public class JmxBug {
  public static void main(String[] args) {
    System.out.println("success");
  }
}

And execute it:

  javac JmxBug.java && java -Dcom.sun.management.jmxremote JmxBug

Using java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.i686, the first scenario prints the java command usage. In the second scenario, the program executes, prints "success" and returns a 0 exit code.

Using java-1.7.0-openjdk-1.7.0.25-2.4.1.0.el6.i686, in both scenarios the JVM exits immediately with a 1 exit code.


Steps to Reproduce:
1. Add `-Dcom.sun.management.jmxremote` to the command line of any `java` command

Actual results:

The JVM crashes immediately with exit code 1.

Expected results:

The JVM to start with the default JMX agent enabled.

Additional info:

The bug is not present in the 64-bit package (java-1.7.0-openjdk-1.7.0.25-2.4.1.0.el6.x86_64).

Comment 1 Dan Mace 2013-08-15 20:27:16 UTC
For additional context, I noticed this bug after noticing ActiveMQ crashing on startup following the package upgrade to java-1.7.0-openjdk-1.7.0.25-2.4.1.0.el6.i686.

Given the common nature of particular system property (enabling JMX), I feel this bug is high severity and would be very likely to break many popular java applications.

Comment 2 Dan Mace 2013-08-15 20:38:58 UTC
One more piece of context I forgot to mention:

Tested on an x86_64 machine with all updates from http://qafiler.bos.redhat.com/redhat/nightly/latest-RHEL6.5/6.5/Server/x86_64/os/ and the i386 repo enabled from http://qafiler.bos.redhat.com/redhat/nightly/latest-RHEL6.5/6.5/Server/i386/os/ to pull in java-1.7.0-openjdk.i686 and java-1.7.0-openjdk-devel.i686 along with their dependencies.

Comment 3 Omair Majid 2013-08-16 16:23:47 UTC
I can not repdroduce on an i686 machine. Will test the i686 packages on x86_64 machine next.

Comment 4 Omair Majid 2013-08-16 20:02:52 UTC
I can reproduce this bug but only when using i686 packages on x86_64.

Comment 5 Dan Mace 2013-08-16 20:08:25 UTC
(In reply to Omair Majid from comment #4)
> I can reproduce this bug but only when using i686 packages on x86_64.

Omar,

Does that mean this will be accepted as a bug to be fixed?

Thanks for your effort.

Comment 6 Omair Majid 2013-08-16 20:43:54 UTC
An strace reveals that one of the last actions before the process exits is accessing `/usr/lib/libnss3.so`. This fails with a ENOENT. nss is listed as a Requires in the rpm but in a non-arch-specific style (`Requires: nss`). The x86_64 nss (/usr/lib64/libnss3.so) meets this rpm requirement, so yum-installing the i686 java-1.7.0-openjdk does not install the i686 nss. If you yum install the i686 nss (`yum install /usr/lib/libnss3.so`), the testcase works fine.

The fix seems pretty straight-foward:
-Requires: nss
+Requires: nss%{?_isa}

The following scratch build should fix the issue (once it completes):
http://brewweb.devel.redhat.com/brew/taskinfo?taskID=6178834

Could you please test it out?

Comment 8 Dan Mace 2013-08-16 20:57:29 UTC
Omair,

Confirmed that manually installing nss.i686 fixes the issue. Thanks for the scratch build; we'll mostly likely get around to testing it on Monday.

Comment 14 errata-xmlrpc 2013-11-21 11:14:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-1611.html