JDK-4948500 : Solaris x86: random IllegalArgumentException: Illegal Load: 0.0 in hashtable
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 3.5,1.4.2_02
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_7,solaris_9
  • CPU: x86,sparc
  • Submitted: 2003-11-04
  • Updated: 2004-03-25
  • Resolved: 2004-03-25
Related Reports
Duplicate :  
Duplicate :  
My best guess is that this is some sort of jit problem ... (possibly
specific to the server vm)

An "impossible" exception is being thrown (it cant happen if the code
was executing as written)

   - have not been able to reproduce it on other platforms

   - dont have a good reproducable test case but we have seen it on
     two runs on the same system so we should be able to duplicate it
     again to get more information (although it may take up to a 
     day to get the error)

    - this may (not clear yet) be a showstopper for our x86 release 

    - I have not tried to reproduce it w/o the server vm

Please let me know what type of information I can obtain to help you
track down the problem


System information:
    OS:     SunOS 5.9 x86
   hardware:  v60x, 2x2.8GHz Xeon 2GB
   JDK:  java version "1.4.2_02"
         Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
          Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
          Running -server vm

At this point, the problem seems to be fairly reproducable (although we do not have
a reproducable test case)  ... I'm filing it and will add a smaller test case if we are able
to duplicate it outside our product.

The problem was seen while running a stress/longevity test on SunONE Message Queue 3.5
(I can provide information on how to run the stress/longevity test if necessary and/or
provide access to the system)

While running a longevity test on the platform, our sever started receiving random errors
in Hashtable ...
    from reviewing the jvm source shipped with 1.4.2_02, the errors appear to be "impossible"

                 this(11, 0.75f);

   Hashtable: 157:
        if (loadFactor <= 0 || Float.isNaN(loadFactor))
->            throw new IllegalArgumentException("Illegal Load: "+loadFactor);

   The exception indicates that the loadFactor is 0.0, however we know that the
   value has to be .75f

One example exception is below  ...

   we received this error in different locations (16  times in ~ 24 hours)
   attaching our full log to the bug report          

[02/Nov/2003:09:29:42 PST] ERROR [B3100]: Unexpected Broker Internal Error : [Uncaught Exception] :
com.sun.messaging.jmq.jmsserver.util.BrokerException: [B4117]: Unexpected Broker Exception: [Unexpected Error processi
ng message]
        at com.sun.messaging.jmq.jmsserver.data.PacketRouter.handleMessage(PacketRouter.java:157)
        at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.readData(IMQConnection.java:1737)
        at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.process(IMQConnection.java:785)
        at com.sun.messaging.jmq.jmsserver.service.imq.OperationRunnable.process(OperationRunnable.java:135)
        at com.sun.messaging.jmq.jmsserver.util.pool.BasicRunnable.run(BasicRunnable.java:455)
        at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.IllegalArgumentException: Illegal Load: 0.0
        at java.util.Hashtable.<init>(Hashtable.java:157)
        at java.util.Hashtable.<init>(Hashtable.java:183)
        at com.sun.messaging.jmq.jmsserver.data.handlers.SessionHandler.handle(SessionHandler.java:49)
        at com.sun.messaging.jmq.jmsserver.data.PacketRouter.handleMessage(PacketRouter.java:146)
        ... 5 more

###@###.### 2003-11-05

re-assigning to jit (I originally filed it as util since the error happened
consistantly in that area)

###@###.### 2004-03-24
The same test when run with MQ 3.5sp1 and with JDK1.4.2_04 did *not* hit this bug. Bug not reproducible with j2sdk1.4.2_04 & MQ3.5sp1
###@###.### 2004-03-24

EVALUATION ###@###.### 2003-11-11 Using the supplied workaround addressed a similar problem in one of our other test cases we see when running on the x86 platform. (found after this bug was filed) We are currently testing the original test case (the one mentioned in the description) to verify that w/ the workaround we are no longer seeing the issue ###@###.### 2004-02-10 Based on the description and workaround, this seems to be a duplicate of 49474404, which is fixed in JRE 1.4.2_03 (already released) or 4965674, which will be fixed in JRE 1.4.2_04.

WORK AROUND -XX:UseSSE=0 ###@###.### 2003-11-11 NOTE: from related bug 4947404 flag prevents SSE/SSE2 instructions generation in compiled java methods.