RFR 15: 8217475: Unexpected StackOverflowError in "process reaper" thread

David Holmes david.holmes at oracle.com
Thu Jul 9 08:54:15 UTC 2020


Hi Roger,

Looks good to me.

Thanks,
David

On 9/07/2020 6:51 am, Roger Riggs wrote:
> Please reveiw 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