RFR (XS) 7182040 - make native thread creation failure message more descriptive

Christian Thalinger christian.thalinger at oracle.com
Wed Feb 12 22:50:47 PST 2014


On Feb 12, 2014, at 3:49 PM, Ioi Lam <ioi.lam at oracle.com> wrote:

> 
> On 2/12/14, 3:28 PM, Christian Thalinger wrote:
>> On Feb 12, 2014, at 3:17 PM, Ioi Lam <ioi.lam at oracle.com> wrote:
>> 
>>> On 2/12/14, 2:35 PM, Christian Thalinger wrote:
>>>> On Feb 12, 2014, at 1:03 PM, Ioi Lam <ioi.lam at oracle.com> wrote:
>>>> 
>>>>> Christian,
>>>>> 
>>>>> It's not clear to me how to define a "generic" version of a method and override it in a port. In the "os" class, there aren't virtual methods. Also, the various os_<port>.hpp files are included into the middle of the declaration of the "os" class. So it seems to me one way or another you have to use #ifdef.
>>>> Sigh.  We have to stop including stuff into the middle of class declarations.  This is such bad design.
>>>> 
>>>> Is actually a port using a different message right now?
>>> No, all ports are using the same message right now.
>> Then let’s remove the macro and deal with a solution when we have to.
> I think that's a good idea, except I already pushed the change :-( I think it's not a big issue so maybe we can clean that up next time this area is touched?

Sure.

> 
> - Ioi
> 
>>> - Ioi
>>> 
>>>>> Thanks
>>>>> - Ioi
>>>>> 
>>>>> On 2/12/14, 12:06 PM, Christian Thalinger wrote:
>>>>>> Can we not use a macro for the message?
>>>>>> 
>>>>>> OS_NATIVE_THREAD_CREATION_FAILED_MSG
>>>>>> 
>>>>>> If you want to be able to override the message override the method.
>>>>>> 
>>>>>> On Feb 10, 2014, at 2:00 PM, Ioi Lam <ioi.lam at oracle.com> wrote:
>>>>>> 
>>>>>>> Please review a very small fix (JDK9):
>>>>>>> 
>>>>>>> http://cr.openjdk.java.net/~iklam/7182040/thread_create_failed_msg_001/
>>>>>>> 
>>>>>>> Bug: The original "OutOfMemorError" message could be misleading when the
>>>>>>>     actual cause is the OS limit on number of processes/threads.
>>>>>>> 
>>>>>>>    https://bugs.openjdk.java.net/browse/JDK-7182040
>>>>>>> 
>>>>>>> Summary of fix:
>>>>>>> 
>>>>>>>    I changed all occurrence of the literal string "unable to create new native thread"
>>>>>>>    in the C code to call a common function os::native_thread_creation_failed_msg().
>>>>>>> 
>>>>>>>    Individual OS ports may define an alternative message by defining the
>>>>>>>    OS_NATIVE_THREAD_CREATION_FAILED_MSG macro in os_<port>.hpp
>>>>>>> 
>>>>>>>    Here's a snap shot of the new message:
>>>>>>> 
>>>>>>>    java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory
>>>>>>>                                or process/resource limits reached
>>>>>>>        at java.lang.Thread.start0(Native Method)
>>>>>>>        at java.lang.Thread.start(Thread.java:713)
>>>>>>>        at spin.main(spin.java:15)
>>>>>>> 
>>>>>>> Tests:
>>>>>>> 
>>>>>>>    JPRT
>>>>>>> 
>>>>>>> Thanks
>>>>>>> - Ioi



More information about the hotspot-dev mailing list