From 38659d2ed9996a7d02f0edfd793474c9d74c0748 Mon Sep 17 00:00:00 2001 From: Roger Riggs Date: Wed, 13 Apr 2016 16:57:49 -0400 Subject: [PATCH] 8086278: java/lang/ProcessHandle/TreeTest.java failed - ProcessReaper StackOverflowException Increase reaper stack size by 50% to 48k Reviewed-by: chegar, martin --- .../share/classes/java/lang/ProcessHandleImpl.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/lang/ProcessHandleImpl.java b/jdk/src/java.base/share/classes/java/lang/ProcessHandleImpl.java index 91fa5623174..15a2bd4c029 100644 --- a/jdk/src/java.base/share/classes/java/lang/ProcessHandleImpl.java +++ b/jdk/src/java.base/share/classes/java/lang/ProcessHandleImpl.java @@ -51,6 +51,11 @@ import static java.security.AccessController.doPrivileged; * @since 9 */ final class ProcessHandleImpl implements ProcessHandle { + /** + * Default size of stack for reaper processes. + */ + private static long REAPER_DEFAULT_STACKSIZE = 128 * 1024; + /** * Cache the ProcessHandle of this process. */ @@ -79,10 +84,12 @@ final class ProcessHandleImpl implements ProcessHandle { ThreadGroup tg = Thread.currentThread().getThreadGroup(); while (tg.getParent() != null) tg = tg.getParent(); ThreadGroup systemThreadGroup = tg; + final long stackSize = Boolean.getBoolean("jdk.lang.processReaperUseDefaultStackSize") + ? 0 : REAPER_DEFAULT_STACKSIZE; ThreadFactory threadFactory = grimReaper -> { - long stackSize = Boolean.getBoolean("jdk.lang.processReaperUseDefaultStackSize") ? 0 : 32768; - Thread t = new Thread(systemThreadGroup, grimReaper, "process reaper", stackSize); + Thread t = new Thread(systemThreadGroup, grimReaper, + "process reaper", stackSize, false); t.setDaemon(true); // A small attempt (probably futile) to avoid priority inversion t.setPriority(Thread.MAX_PRIORITY);