[jboss-jira] [JBoss JIRA] (WFLY-11328) EE Concurency Utilities "hung-task-threshold" / "long-running-tasks" do not work and are not implemented as explained

Jiri Ondrusek (Jira) issues at jboss.org
Mon Nov 12 06:36:00 EST 2018


     [ https://issues.jboss.org/browse/WFLY-11328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jiri Ondrusek moved JBEAP-15809 to WFLY-11328:
----------------------------------------------

           Project: WildFly  (was: JBoss Enterprise Application Platform)
               Key: WFLY-11328  (was: JBEAP-15809)
          Workflow: GIT Pull Request workflow   (was: CDW with loose statuses v1)
       Component/s: EE
                        (was: Concurrency Utilities)
                        (was: EE)
    Target Release:   (was: 7.2.0.GA)


> EE Concurency Utilities "hung-task-threshold" / "long-running-tasks" do not work and are not implemented as explained
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-11328
>                 URL: https://issues.jboss.org/browse/WFLY-11328
>             Project: WildFly
>          Issue Type: Bug
>          Components: EE
>            Reporter: Jiri Ondrusek
>            Assignee: Jiri Ondrusek
>            Priority: Major
>
> ee subsystem parameters "hung-task-threshold" and "long-running-tasks" for managed-executor-service / managed-scheduled-executor-service do not work and are not implemented as described in [EAP 7 Development Guide|https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/development_guide/concurrency_utilities#managed_executor_service]:
>  - hung-task-threshold: Defines the time, in milliseconds, after which tasks are considered hung by the managed executor service and forcefully aborted. If the value is 0 (which is the default), tasks are never considered hung.
>  - long-running-tasks: Suggests optimizing the execution of long running tasks, and defaults to false.
> I tested with [EAP 7 QuickStarts managed-executor-service example|https://github.com/jboss-developer/jboss-eap-quickstarts/tree/7.0.0.Final/managed-executor-service] but these paremeters doe not take any effect:
>  - tasks exceeding hung-task-threshold are never forcefully aborted. And there's no way to detect hung tasks exceeding hung-task-threshold. 
>  - setting long-running-tasks to true does not change the behavior.
> As far as I checked the source code, I noticed the following:
>  - EAP 7.x uses the EE Concurency Utilities RI [org.glassfish.enterprise.concurrent|https://github.com/javaee/cu-ri] internally and just passes the paramters to the RI. 
>  - In the EE Concurency Utilities RI, these parameters are used in the methods [ManagedThreadFactoryImpl#isTaskHung(long now)|https://github.com/javaee/cu-ri/blob/master/src/main/java/org/glassfish/enterprise/concurrent/ManagedThreadFactoryImpl.java#L294-L299], [AbstractManagedExecutorService#getHungThreads()|https://github.com/javaee/cu-ri/blob/master/src/main/java/org/glassfish/enterprise/concurrent/AbstractManagedExecutorService.java#L183-L201] and [AbstractManagedExecutorService#isLongRunningTasks()|https://github.com/javaee/cu-ri/blob/master/src/main/java/org/glassfish/enterprise/concurrent/AbstractManagedExecutorService.java#L211-L213] (AbstractManagedExecutorService is the parent class of ManagedExecutorServiceImpl / ManagedScheduledExecutorServiceImpl). 
>  - However, these methods are never invoked from EAP 7.x. So, these parameters do not take any effect in EAP 7.x. 
>  - In addition, even if these methods are used, it looks the implementation is totally different from the description in the documentation. The parameter "long-running-tasks" is just used as a flag to skip from checking hung thread detection. And the parameter "hung-task-threshold" never forcefully abort the hung thread exceeding the threshold. 



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list