[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