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


Reply via email to