Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-8595

Thread Pooling configuration from jmx-console doesn't update WorkerStack size. Size remains 200 always.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Critical
    • No Release
    • JBossAS-5.0.1.GA
    • Web Console
    • None
    • High
    • Workaround Exists
    • Hide

      Use Thread Pooling configuration from server.xml which resides in \jboss-5.1.0.GA\server\default\deploy\jbossweb.sar

      <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}"
      connectionTimeout="20000" redirectPort="8443" maxThreads="1000" />

      Show
      Use Thread Pooling configuration from server.xml which resides in \jboss-5.1.0.GA\server\default\deploy\jbossweb.sar <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" maxThreads="1000" />
    • Hide

      1) Start JBoss 5.0.1GA server with below VM parameters.
      -Xms1024m -Xmx1024m -XX:MaxPermSize=256m
      2) Open web-console.
      Goto JBoss-web -> jboss.web.type=ThreadPool, name=http*-8080
      3) Assign the value of maxThreads=1000 and apply changes.
      4) Fire concurrent threads more than 200, We are using Grinder tool as a part of load testing.
      5) Open graph for "currentThreadBusy", and observe the behavior of busy threads.
      5) After few minutes (totalthreads - 200) gets busy and will never gets free.

      Show
      1) Start JBoss 5.0.1GA server with below VM parameters. -Xms1024m -Xmx1024m -XX:MaxPermSize=256m 2) Open web-console. Goto JBoss-web - > jboss.web.type=ThreadPool, name=http *-8080 3) Assign the value of maxThreads=1000 and apply changes. 4) Fire concurrent threads more than 200, We are using Grinder tool as a part of load testing. 5) Open graph for "currentThreadBusy", and observe the behavior of busy threads. 5) After few minutes (totalthreads - 200) gets busy and will never gets free.

    Description

      When we fire concurrent request more than 200, let's say 200+x (With maxThreads specified 1000 from jmx/web console), Everything works fine but after few seconds x NUMBER OF THREADS GETS BUSY and they never get free. On server log we are getting below ArrayIndexOutOfBoundsException.

      Exception in thread "http-192.168.1.166-8080-4" java.lang.ArrayIndexOutOfBoundsException: 200
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.push(JIoEndpoint.java:769)
      at org.apache.tomcat.util.net.JIoEndpoint.recycleWorkerThread(JIoEndpoint.java:724)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:457)
      at java.lang.Thread.run(Thread.java:662)
      Exception in thread "http-192.168.1.166-8080-16" java.lang.ArrayIndexOutOfBoundsException: 201
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.push(JIoEndpoint.java:769)
      at org.apache.tomcat.util.net.JIoEndpoint.recycleWorkerThread(JIoEndpoint.java:724)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:457)
      at java.lang.Thread.run(Thread.java:662)
      Exception in thread "http-192.168.1.166-8080-91" java.lang.ArrayIndexOutOfBoundsException: 202
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.push(JIoEndpoint.java:769)
      at org.apache.tomcat.util.net.JIoEndpoint.recycleWorkerThread(JIoEndpoint.java:724)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:457)
      at java.lang.Thread.run(Thread.java:662)
      Exception in thread "http-192.168.1.166-8080-98" java.lang.ArrayIndexOutOfBoundsException: 203
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.push(JIoEndpoint.java:769)
      at org.apache.tomcat.util.net.JIoEndpoint.recycleWorkerThread(JIoEndpoint.java:724)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:457)
      at java.lang.Thread.run(Thread.java:662)
      17:08:49,515 ERROR [JIoEndpoint] Error allocating socket processor
      java.lang.ArrayIndexOutOfBoundsException: 203
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.pop(JIoEndpoint.java:778)
      at org.apache.tomcat.util.net.JIoEndpoint.createWorkerThread(JIoEndpoint.java:661)
      at org.apache.tomcat.util.net.JIoEndpoint.getWorkerThread(JIoEndpoint.java:702)
      at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:737)
      at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:313)
      at java.lang.Thread.run(Thread.java:662)
      17:08:49,530 ERROR [JIoEndpoint] Error allocating socket processor
      java.lang.ArrayIndexOutOfBoundsException: 202
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.pop(JIoEndpoint.java:778)
      at org.apache.tomcat.util.net.JIoEndpoint.createWorkerThread(JIoEndpoint.java:661)
      at org.apache.tomcat.util.net.JIoEndpoint.getWorkerThread(JIoEndpoint.java:702)
      at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:737)
      at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:313)
      at java.lang.Thread.run(Thread.java:662)
      17:08:49,546 ERROR [JIoEndpoint] Error allocating socket processor
      java.lang.ArrayIndexOutOfBoundsException: 201
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.pop(JIoEndpoint.java:778)
      at org.apache.tomcat.util.net.JIoEndpoint.createWorkerThread(JIoEndpoint.java:661)
      at org.apache.tomcat.util.net.JIoEndpoint.getWorkerThread(JIoEndpoint.java:702)
      at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:737)
      at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:313)
      at java.lang.Thread.run(Thread.java:662)
      17:08:49,548 ERROR [JIoEndpoint] Error allocating socket processor
      java.lang.ArrayIndexOutOfBoundsException: 200
      at org.apache.tomcat.util.net.JIoEndpoint$WorkerStack.pop(JIoEndpoint.java:778)
      at org.apache.tomcat.util.net.JIoEndpoint.createWorkerThread(JIoEndpoint.java:661)
      at org.apache.tomcat.util.net.JIoEndpoint.getWorkerThread(JIoEndpoint.java:702)
      at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:737)
      at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:313)
      at java.lang.Thread.run(Thread.java:662)

      Attachments

        Activity

          People

            Unassigned Unassigned
            nishantparikh Nishant Parikh (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: