From d80160da676887de44a10d489108c2eca1cea78e Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Thu, 17 Dec 2015 09:39:21 -0800 Subject: [PATCH] 8144553: java/lang/StackWalker/StackWalkTest.java and MultiThreadStackWalk.java fail with stack overflows Reviewed-by: dfuchs --- .../java/lang/StackWalker/MultiThreadStackWalk.java | 2 +- jdk/test/java/lang/StackWalker/StackWalkTest.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/jdk/test/java/lang/StackWalker/MultiThreadStackWalk.java b/jdk/test/java/lang/StackWalker/MultiThreadStackWalk.java index 6212aaeafa7..18ec9454ee0 100644 --- a/jdk/test/java/lang/StackWalker/MultiThreadStackWalk.java +++ b/jdk/test/java/lang/StackWalker/MultiThreadStackWalk.java @@ -328,7 +328,7 @@ public class MultiThreadStackWalk { public void run() { try { - Env env = runTest(test, 2000, 10); + Env env = runTest(test, 1000, 10); //waitWalkers(env); checkTest(env, test); } catch(Throwable t) { diff --git a/jdk/test/java/lang/StackWalker/StackWalkTest.java b/jdk/test/java/lang/StackWalker/StackWalkTest.java index b824147043e..7bbcc6150f8 100644 --- a/jdk/test/java/lang/StackWalker/StackWalkTest.java +++ b/jdk/test/java/lang/StackWalker/StackWalkTest.java @@ -236,6 +236,8 @@ public class StackWalkTest { if (didWalk) { throw new IllegalStateException("StackWalkTest already used"); } + // Test may run into StackOverflow when running in -Xcomp mode on deep stack + assert stackDepth <= 1000; assert markAt <= stackDepth : "markAt(" + markAt + ") > stackDepth(" + stackDepth + ")"; System.out.print("runTest(" + swOptions @@ -297,15 +299,15 @@ public class StackWalkTest { // Long stack, default maxDepth StackWalkTest swt; swt = new StackWalkTest(); - swt.runTest(StackWalkTest.class, "main", 2000, 10); + swt.runTest(StackWalkTest.class, "main", 1000, 10); // Long stack, matching maxDepth swt = new StackWalkTest(2000); - swt.runTest(StackWalkTest.class, "main", 2000, 10); + swt.runTest(StackWalkTest.class, "main", 1000, 10); // Long stack, maximum maxDepth swt = new StackWalkTest(Integer.MAX_VALUE); - swt.runTest(StackWalkTest.class, "main", 2000, 10); + swt.runTest(StackWalkTest.class, "main", 1000, 10); // // Single batch @@ -349,7 +351,7 @@ public class StackWalkTest { swt.runTest(StackWalkTest.class, "main", 80, 40); swt = new StackWalkTest(EnumSet.of(RETAIN_CLASS_REFERENCE), 50); - swt.runTest(StackWalkTest.class, "main", 2000, 1048); + swt.runTest(StackWalkTest.class, "main", 1000, 524); } } }