[jboss-jira] [JBoss JIRA] (WFCORE-3565) RequestController ignores queued tasks if max requests is configured

Christoph Böhme (JIRA) issues at jboss.org
Tue Jan 30 07:28:01 EST 2018


Christoph Böhme created WFCORE-3565:
---------------------------------------

             Summary: RequestController ignores queued tasks if max requests is configured
                 Key: WFCORE-3565
                 URL: https://issues.jboss.org/browse/WFCORE-3565
             Project: WildFly Core
          Issue Type: Bug
    Affects Versions: 4.0.0.Alpha7, 3.0.8.Final
            Reporter: Christoph Böhme


We encountered an issue with EJB timers stopping randomly if the container is under load. Sometimes the timers get stalled right after deployment without firing at all. Sometimes the timers work fine for a couple of days before they suddenly stop working. The timers are defined using the {{@Scheduled}} annotation.

We found out that the reason for the randomly stopping timers is a bug in the {{RequestController}} class which only appears if a maximum number of requests is configured in the request controller subsystem. If a timer is being triggered while the container has reached the request limit then the timer is put into a task queue to be processed later. However, the task queue is never checked for queued tasks if the request number goes down again. This leaves the timers stuck in the queue. Since every timer needs to reregister after it has been triggered, the timers appear to have stopped.

In old versions of the {{RequestController}} class from before release wildfly-core-1.0.0.Alpha14 it looks like the idea was to check for queued requests whenever a request finished (see [here|https://github.com/wildfly/wildfly-core/blob/a426a14db6466549159a5528dcee9f4b7087d334/request-controller/src/main/java/org/wildfly/extension/requestcontroller/RequestController.java#L369]).



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list