RFR 15: 8217475: Unexpected StackOverflowError in "process reaper" thread
David Holmes
david.holmes at oracle.com
Sat Jul 11 13:28:01 UTC 2020
On 10/07/2020 12:09 am, Roger Riggs wrote:
> Hi,
>
> I raised the debugDelta to 16k and so far (12hrs) have not seen any
> failures.
> I'll push later today with 16k unless I hear any concerns.
>
> Webrev:
> http://cr.openjdk.java.net/~rriggs/webrev-process-stackoverflow-8217475-1/
Unfortunately failures are still happening after the push.
https://bugs.openjdk.java.net/browse/JDK-8249217
David
-----
> Thanks, Roger
>
>
> On 7/9/20 4:54 AM, David Holmes wrote:
>> Hi Roger,
>>
>> Looks good to me.
>>
>> Thanks,
>> David
>>
>> On 9/07/2020 6:51 am, Roger Riggs wrote:
>>> Please review a change to increase the size of the Process Reaper
>>> stack for debug builds.
>>> This intermittent issue can be traced to the stack shadow page size
>>> being larger
>>> in debug builds than in release builds. The problem has only been
>>> spotted in debug builds.
>>>
>>> diff a/src/java.base/share/classes/java/lang/ProcessHandleImpl.java
>>> b/src/java.base/share/classes/java/lang/ProcessHandleImpl.java
>>> --- a/src/java.base/share/classes/java/lang/ProcessHandleImpl.java
>>> +++ b/src/java.base/share/classes/java/lang/ProcessHandleImpl.java
>>> @@ -85,12 +85,16 @@
>>> doPrivileged((PrivilegedAction<Executor>) () -> {
>>>
>>> ThreadGroup tg =
>>> Thread.currentThread().getThreadGroup();
>>> while (tg.getParent() != null) tg = tg.getParent();
>>> ThreadGroup systemThreadGroup = tg;
>>> +
>>> + // For a debug build, the stack shadow zone is larger;
>>> + // Increase the total stack size to avoid potential
>>> stack overflow.
>>> + int debugDelta =
>>> "release".equals(System.getProperty("jdk.debug")) ? 0 : 8192;
>>> final long stackSize =
>>> Boolean.getBoolean("jdk.lang.processReaperUseDefaultStackSize")
>>> - ? 0 : REAPER_DEFAULT_STACKSIZE;
>>> + ? 0 : REAPER_DEFAULT_STACKSIZE + debugDelta;
>>>
>>> ThreadFactory threadFactory = grimReaper -> {
>>> Thread t = new Thread(systemThreadGroup,
>>> grimReaper,
>>> "process reaper", stackSize, false);
>>> t.setDaemon(true);
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~rriggs/webrev-process-stackoverflow-8217475/
>>>
>>> Issue:
>>> https://bugs.openjdk.java.net/browse/JDK-8217475
>>>
>>> Thanks, Roger
>>>
>
More information about the core-libs-dev
mailing list