JDK-8000268 : sun/security/provider/X509Factory/BigCRL.java failing on Linux 32-bit
  • Type: Bug
  • Component: security-libs
  • Sub-Component: java.security
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2012-09-29
  • Updated: 2016-10-22
  • Resolved: 2012-10-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8 b61Fixed
Related Reports
Relates :  
Description
Since the no perm gen work this test has been failing consistently in JPRT on several different machines, usually Linux 32-bit. Below is an example. It would be great if this test could be examined to see whether it really requires a 1GB heap.

--------------------------------------------------
TEST: sun/security/provider/X509Factory/BigCRL.java
JDK under test: (/tmp/jprt/P1/102909.albatem/testproduct/linux_i586_2.6-product)
java version "1.8.0-internal"
Java(TM) SE Runtime Environment (build 1.8.0-internal-201209291029.albatem.tl-b00)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode, sharing)

ACTION: build -- Passed. Build successful
REASON: Named class compiled on demand
TIME:   0.057 seconds
messages:
command: build BigCRL
reason: Named class compiled on demand
elapsed time (seconds): 0.057

ACTION: compile -- Passed. Compilation successful
REASON: .class file out of date or does not exist
TIME:   0.057 seconds
messages:
command: compile /tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java
reason: .class file out of date or does not exist
elapsed time (seconds): 0.057
direct:
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:56: warning: X509CertImpl is internal proprietary API and may be removed in a future release
        X509CertImpl signerCertImpl = new X509CertImpl(encoded);
        ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:56: warning: X509CertImpl is internal proprietary API and may be removed in a future release
        X509CertImpl signerCertImpl = new X509CertImpl(encoded);
                                          ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:57: warning: X509CertInfo is internal proprietary API and may be removed in a future release
        X509CertInfo signerCertInfo = (X509CertInfo)signerCertImpl.get(
        ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:57: warning: X509CertInfo is internal proprietary API and may be removed in a future release
        X509CertInfo signerCertInfo = (X509CertInfo)signerCertImpl.get(
                                       ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:58: warning: X509CertImpl is internal proprietary API and may be removed in a future release
                X509CertImpl.NAME + "." + X509CertImpl.INFO);
                ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:58: warning: X509CertImpl is internal proprietary API and may be removed in a future release
                X509CertImpl.NAME + "." + X509CertImpl.INFO);
                                          ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:59: warning: X500Name is internal proprietary API and may be removed in a future release
        X500Name owner = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "."
        ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:59: warning: X500Name is internal proprietary API and may be removed in a future release
        X500Name owner = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "."
                          ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:59: warning: X509CertInfo is internal proprietary API and may be removed in a future release
        X500Name owner = (X500Name)signerCertInfo.get(X509CertInfo.SUBJECT + "."
                                                      ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:60: warning: CertificateSubjectName is internal proprietary API and may be removed in a future release
                + CertificateSubjectName.DN_NAME);
                  ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:68: warning: CRLExtensions is internal proprietary API and may be removed in a future release
        CRLExtensions ext = new CRLExtensions();
        ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:68: warning: CRLExtensions is internal proprietary API and may be removed in a future release
        CRLExtensions ext = new CRLExtensions();
                                ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:69: warning: CRLReasonCodeExtension is internal proprietary API and may be removed in a future release
        ext.set("Reason", new CRLReasonCodeExtension(1));
                              ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:71: warning: X509CRLEntryImpl is internal proprietary API and may be removed in a future release
            badCerts[i] = new X509CRLEntryImpl(
                              ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:74: warning: X509CRLImpl is internal proprietary API and may be removed in a future release
        X509CRLImpl crl = new X509CRLImpl(owner, date, date, badCerts);
        ^
/tmp/jprt/P1/102909.albatem/s/jdk/test/sun/security/provider/X509Factory/BigCRL.java:74: warning: X509CRLImpl is internal proprietary API and may be removed in a future release
        X509CRLImpl crl = new X509CRLImpl(owner, date, date, badCerts);
                              ^
16 warnings

ACTION: main -- Failed. Unexpected exit from test [exit code: 1]
REASON: User specified action: run main/othervm -Xmx1024m BigCRL 
TIME:   0.006 seconds
messages:
command: main -Xmx1024m BigCRL
reason: User specified action: run main/othervm -Xmx1024m BigCRL 
elapsed time (seconds): 0.006
STDOUT:
Error occurred during initialization of VM
Could not reserve enough space for object heap 1075838976 bytes
STDERR:

TEST RESULT: Failed. Unexpected exit from test [exit code: 1]
--------------------------------------------------
Comments
One working for now is that we change it to run with -Xshare:off, see: http://mail.openjdk.java.net/pipermail/security-dev/2012-October/005659.html
02-10-2012

This test is about parsing a CRL file larger than 16MB. It's a little like DOM (instead of SAX) of XML, which needs many memory to hold all objects in such a big file. On my Linux, -Xmx512 would fail, -Xmx640m works for i586, but not for x64, and it spends >250% of time. I'll try to find out if I can create a CRL file that has the same size but a simpler structure and hopefully the memory consumption can be lower. I'll be on vacation for the next week, so please help me put the test in ProblemList.
29-09-2012