Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-5126

WARN if user tries to set unrealistic io subsystem stack-size

XMLWordPrintable

      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)
        

       

              rchakrab Ranabir Chakraborty
              rchakrab Ranabir Chakraborty
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: