-
Enhancement
-
Resolution: Done
-
Minor
-
None
The default stack-size for java is 512k , 1M on 64bit. With a simple jsp test, it looks like 150000-200000 bytes of stack would be required at least.
It appears some Java 8 ignores a request to set stack-size=32 bytes but some Java 11 honor the request resulting in java.lang.StackOverflowError. The actual call could potentially be different that ends with java.lang.StackOverflowError.
[standalone@embedded /] /subsystem=io/worker=default:write-attribute(name=stack-size,value=32) {"outcome" => "success"}
<xs:attribute name="stack-size" type="xs:long" default="0"> <xs:annotation> <xs:documentation> <![CDATA[ The stack size (in bytes) to attempt to use for worker threads. ]]> </xs:documentation> </xs:annotation> </xs:attribute>
Possible overflow:
Caused by: java.lang.StackOverflowError at java.base/java.io.UnixFileSystem.getBooleanAttributes0(Native Method) at java.base/java.io.UnixFileSystem.getBooleanAttributes(Unknown Source) at java.base/java.io.File.exists(Unknown Source) at org.jboss.modules.LocalModuleFinder.parseModuleXmlFile(LocalModuleFinder.java:249) ... at java.base/java.lang.Class.forName(Unknown Source) at io.undertow.jsp@2.0.8.Final-redhat-00001//org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:265) at io.undertow.jsp@2.0.8.Final-redhat-00001//org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:244)
Overflow when using byteman to try to debug:
Caused by: java.lang.StackOverflowError at java.base/java.lang.StackStreamFactory$AbstractStackWalker.callStackWalk(Native Method) at java.base/java.lang.StackStreamFactory$AbstractStackWalker.beginStackWalk(Unknown Source) at java.base/java.lang.StackStreamFactory$AbstractStackWalker.walk(Unknown Source) at java.base/java.lang.StackWalker.walk(Unknown Source) at org.jboss.logmanager@2.1.14.Final-redhat-00001//org.jboss.logmanager.JDKSpecific.findCallingClasses(JDKSpecific.java:72) at org.jboss.logmanager@2.1.14.Final-redhat-00001//org.jboss.logmanager.ClassLoaderLogContextSelector$1.run(ClassLoaderLogContextSelector.java:93) ... at org.jboss.as.logging@10.1.7.Final-redhat-00001//org.jboss.as.logging.stdio.LogContextStdioContextSelector.getStdioContext(LogContextStdioContextSelector.java:49) at org.jboss.stdio@1.1.0.Final-redhat-00001//org.jboss.stdio.StdioContext$2.getDelegate(StdioContext.java:153) at org.jboss.stdio@1.1.0.Final-redhat-00001//org.jboss.stdio.StdioContext$DelegatingPrintStream.println(StdioContext.java:474) at org.jboss.byteman.rule.helper.Helper.dotraceln(Helper.java:461) ... at java.base/java.lang.Class.forName(Unknown Source) at io.undertow.jsp@2.0.8.Final-redhat-00001//org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:265)
- is cloned by
-
JBEAP-20154 [GSS](7.3.z) WARN if user tries to set unrealistic io subsystem stack-size
- Closed