(S) RFR: 8139300: Internal Error (vm/utilities/debug.cpp:399), # Error: ShouldNotReachHere()

David Holmes david.holmes at oracle.com
Tue Nov 17 00:31:44 UTC 2015


On 17/11/2015 10:22 AM, Kim Barrett wrote:
> On Nov 16, 2015, at 5:50 PM, David Holmes <david.holmes at oracle.com> wrote:
>>
>> On 17/11/2015 8:16 AM, Kim Barrett wrote:
>>> On Nov 16, 2015, at 4:32 PM, David Holmes <david.holmes at oracle.com> wrote:
>>>>
>>>> On 17/11/2015 6:34 AM, Daniel D. Daugherty wrote:
>>>>> On 11/11/15 11:33 PM, David Holmes wrote:
>>>>>> webrev: http://cr.openjdk.java.net/~dholmes/8139300/webrev/
>>>>>
>>>>> src/share/vm/utilities/debug.cpp
>>>>>      No comments.
>>>>>
>>>>> test/runtime/ErrorHandling/SecondaryErrorTest.java
>>>>>      No comments.
>>>>>
>>>>> Thumbs up.
>>>>>
>>>>> Since you've used the POSIX equivalent code:
>>>>>
>>>>>      pthread_kill(pthread_self(), SIGFPE);
>>>>>
>>>>> I'm presuming we have no plans to change this code back once
>>>>> MacOS X fixes the bug in raise().
>>>>
>>>> No plans. Also I'm not aware of OSX accepting this as a bug, so it may never get fixed.
>>>
>>> Note that the Darwin/BSD documentation for raise is different from POSIX:
>>>
>>> https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/raise.3.html
>>>
>>> DESCRIPTION
>>>
>>>       The raise() function sends the signal sig to the current process.
>>
>> Yes. I thought I had found a slightly different version that also mentioned POSIX but now can't locate it. The page above is from 1993. :(
>
> "man raise” on my Mac (still on Mavericks, so 2013) gives the same description.

Yep. Sad really.

FreeBSD gets this right. They have the same basic manpage but replaced 
"current process" with "current thread". Which is somewhat interesting 
as that goes beyond the ISO C90 spec (which knows nothing about threads).

Cheers,
David



More information about the hotspot-runtime-dev mailing list