<AWT Dev> RFR(XS): 7196866: CTW fails on Solaris

Morris Meyer morris.meyer at oracle.com
Thu May 16 06:02:00 PDT 2013


This is the command line that generates the crash:

-XX:DefaultMaxRAMFraction=8 -XX:+CreateMinidumpOnCrash -ea -esa 
-XX:+TieredCompilation -XX:CompileThreshold=100 
-XX:+UnlockExperimentalVMOptions -XX:-ShowMessageBoxOnError -Xverify:all 
-XX:+CompileTheWorld -XX:CompileTheWorldStartAt=15001 
-XX:CompileTheWorldStopAt=16000 -XX:LogFile=hotspot_15001_16000.log 
-XX:MaxPermSize=384M -Xmx512M -Xbootclasspath/p:jre/lib/rt.jar

To run the whole CTW suit - you just remove the StartAt and StopAt args.

I tested the Solaris x86 side of the world internally on sc14ia01, SPARC 
on sc11d1901.


On 5/15/13 8:30 PM, Phil Race wrote:
> To know whether the fix is appropriate or maybe the best fix,
> I'd have to see what classes are loaded in what order.
> I can see the JBS bug (external folks can't) but its not really
> worth seeing anyway as there's not much info in there :-
> http://bugs.sun.com/view_bug.do?bug_id=7196866
> seems to contain all the data there is ..
> I am still curious about the test envt. that triggered Xrender.
> -phil.
> On 5/15/13 4:40 PM, Vladimir Kozlov wrote:
>> On 5/15/13 4:00 PM, Phil Race wrote:
>>> It *initialises* all those classes ? Meaning their static initialisers
>>> might run, call native methods in a library which expect things to have
>>> been done in a different order ? Maybe the library isn't even loaded 
>>> yet?
>>> I presume this must be happening else we wouldn't be in this code.
>> Yes, it is the case.
>>> That's a somewhat fragile test. I guess it doesn't have to be involve
>>> either.
>>> Its good to know that "all classes compile" but I'm not sure I
>>> can be easily convinced that its worth trying the wac-a-mole game
>>> needed to ensure that this doesn't collide with the semantics
>>> of the runtime, particularly in the client area which has lots of
>>> native code and state. Plus anyone looking at changes to
>> I agree, but fortunately it is only the second problem with such 
>> conflict. First one was 7017493 ConcurrentLinkedDeque: Unexpected 
>> initialization order. Which was fixed in java code.
>>> accomodate this out of the context of the changes might be
>>> puzzled as to why this is needed. In this case its 'defensive'
>>> coding so maybe they won't think too long about it but still ..
>> It is very simple changes which will help JVM important testing. The 
>> only other solution for VM is to exclude these .jar files from 
>> testing which we would like to avoid.
>>> I see there are several linked bugs. I haven't looked but since
>>> they appear in different areas I suppose this isn't the only case
>>> although they appear relatively few in the scheme of things.
>>> Can't compilation be done in some special fashion that bypasses
>>> class initialisation ?
>> No, we can't bypass class initialization since JIT compilation 
>> depends on state of classes.
>> thanks,
>> Vladimir
>>> -phil.
>>> On 5/15/13 3:50 PM, Vladimir Kozlov wrote:
>>>> Morris,
>>>> Please, add to the bug report the command line and machines you used
>>>> to reproduce the problem.
>>>> Phil, the problem is triggered during special mode testing in JVM
>>>> -XX:+CompileTheWorld. In this more JVM loads all classes in specified
>>>> .jar file and compiles (JIT compilation) all methods in class. It is
>>>> stress test for Hotspot JIT compilers. For such tests we don't set
>>>> Thanks,
>>>> Vladimir
>>>> On 5/15/13 3:27 PM, Phil Race wrote:
>>>>> CC (instead of BCC) 2d-dev ..
>>>>> -phil.
>>>>> On 5/15/13 3:21 PM, Phil Race wrote:
>>>>>> Morris,
>>>>>> I traced this review back to hotspot-compiler-dev
>>>>>> Thanks to Vladimir and Christian for the ponter to redirect but
>>>>>> this should really go to 2d-dev not awt-dev.
>>>>>> Xrender is the 2D pipeline for accelerated rendering on recent
>>>>>> Xservers.
>>>>>> Also it I think it should be pushed via the 2D forest after review,
>>>>>> whereas it appears your webrev is against the hotspot forest.
>>>>>> If the display is NULL we should not enter Xrender but operate in
>>>>>> headless mode. So I'd like to take a closer look at this.
>>>>>> Where did you test this ? Solaris 10 doesn't trigger xrender ?
>>>>>> Did you actually use Solaris 11 on SPARC as the client *and* 
>>>>>> Xserver ?
>>>>>> Is there a regression test ?
>>>>>> -phil.
>>>>>> On 5/15/13 2:57 PM, Christian Thalinger wrote:
>>>>>>> Looks good.  Nit:  why is there an empty line?
>>>>>>> +    jlong fmt8;
>>>>>>> +
>>>>>>> +    jlong fmt32;
>>>>>>> -- Chris
>>>>>>> On May 15, 2013, at 1:21 PM, Morris Meyer <morris.meyer at oracle.com>
>>>>>>> wrote:
>>>>>>>> Folks,
>>>>>>>> Could I get a review for these two small changes in
>>>>>>>> src/solaris/native.  This is to fix the nightly CTW testing 
>>>>>>>> crashes
>>>>>>>> on Solaris caused by a library SEGV internal to X11 that occurs
>>>>>>>> during class initialization when the display is NULL.
>>>>>>>> I've tested this patch on SfBay with JPRT and with the CTW 
>>>>>>>> tests on
>>>>>>>> Solaris x86 and Sparc.
>>>>>>>> Thanks much,
>>>>>>>>         --morris
>>>>>>>> JBS - https://jbs.oracle.com/bugs/browse/JDK-7196866
>>>>>>>> WEBREV - http://cr.openjdk.java.net/~morris/7196866

More information about the hotspot-compiler-dev mailing list