[jboss-jira] [JBoss JIRA] (JBWEB-276) Using non-blocking thread pool causes excessive RejectedExecutionExceptions to be logged

RH Bugzilla Integration (JIRA) jira-events at lists.jboss.org
Fri Jul 19 00:44:26 EDT 2013


    [ https://issues.jboss.org/browse/JBWEB-276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790891#comment-12790891 ] 

RH Bugzilla Integration commented on JBWEB-276:
-----------------------------------------------

James Livingston <jlivings at redhat.com> made a comment on [bug 985191|https://bugzilla.redhat.com/show_bug.cgi?id=985191]

For the default blocking thread pools, a RejectedExecutionException means a serious problem occurred, yes.

If you switch the web container over to using a non-blocking thread pool however, so that it drops requests rather than blocking, it is expected that you would receive these.


Currently if you want to make JBoss drop web requests when there are too many, it writes a large number of these errors out into the log, which would have performance implications reducing the usefulness of dropping request under excessive load.

If you don't want to hide the message since it is serious for blocking thread pools, is there an alternative which would let people using non-blocking thread pools hide it?  It would be possible to move it to a different logging category, which could be turned off, but adding a new logging category for one message seems excessive.
                
> Using non-blocking thread pool causes excessive RejectedExecutionExceptions to be logged
> ----------------------------------------------------------------------------------------
>
>                 Key: JBWEB-276
>                 URL: https://issues.jboss.org/browse/JBWEB-276
>             Project: JBoss Web
>          Issue Type: Enhancement
>      Security Level: Public(Everyone can see) 
>    Affects Versions: JBossWeb-7.2.0.Beta1
>            Reporter: James Livingston
>            Assignee: Remy Maucherat
>         Attachments: JBWEB-276-1.patch
>
>
> When a finite-queue thread pool is used to process web requests, the queue being full can either block or drop the request. If you use a pool which drops requests, a RejectedExecutionException is thrown.
> Currently JIoEndpoint catches that exception the same as other ones such as being unable to create threads. When using a non-blocking pool, the task being rejected is not a critical error like other exceptions so should not be logged at ERROR level.
> Under excessive load, these exception will be continuously generated as requests are dropped, which cases a large amount of logging. Setting it to DEBUG level would stop that, but it would hide the potentially useful messages by default.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list