Its not a critical bug in my opinion. This happens sometimes when a service is being stopped via kill -15. The error occurs in a metrics gathering part of an agent. I only effects a process being shutdown, and does not cause any side-effects except for logging.
On Mon, Aug 1, 2016 at 5:19 PM, Marshall Schor <m...@schor.com> wrote: > just wondering if this issue is important enough to get into this > release? It > says "future-DUCC" so, I guess you're thinking it's not? > > -Marshall > > On 8/1/2016 1:17 PM, Jerry Cwiklik (JIRA) wrote: > > Jerry Cwiklik created UIMA-5036: > > ----------------------------------- > > > > Summary: UIMA-DUCC: fix Agent RejectedExecutionException > > Key: UIMA-5036 > > URL: https://issues.apache.org/jira/browse/UIMA-5036 > > Project: UIMA > > Issue Type: Bug > > Components: DUCC > > Reporter: Jerry Cwiklik > > Assignee: Jerry Cwiklik > > Fix For: future-DUCC > > > > > > Fix a race condition which leads to RejectedExecutionException in > LinuxProcessMetricsProcessor.process() method. The method fails with this > stack trace: > > > > java.util.concurrent.RejectedExecutionException: Task > java.util.concurrent.FutureTask@4c38895 rejected from > java.util.concurrent.ThreadPoolExecutor@41c10669[Terminated, pool \ > > size = 0, active threads = 0, queued tasks = 0, completed tasks = 2052] > > at > java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047) > > at > java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823) > > at > java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369) > > at > java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) > > at > org.apache.uima.ducc.agent.processors.LinuxProcessMetricsProcessor.process(LinuxProcessMetricsProcessor.java:291) > > at > org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63) > > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460) > > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) > > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) > > at > org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:165) > > at > org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:73) > > at java.util.TimerThread.mainLoop(Timer.java:555) > > at java.util.TimerThread.run(Timer.java:505) > > > > In the above, the thread pool state shows as Terminated when a submit > API was called. This means that the thread pool was stopped when the code > was trying to use the pool. > > > > Each process spawned by an Agent has a Camel driven timer which triggers > metrics collection. The metrics are collected in multiple threads provided > by the thread pool. > > > > The fix is to synchronize code in close() and process() on a common > lock. In stop() the code sets a boolean indicating that the metrics > collection should not take place. In the process(), the code checks the > boolean to determine if it should proceed. > > > > The Camel driven timer is eventually stopped in a code handling process > termination. > > > > > > > > -- > > This message was sent by Atlassian JIRA > > (v6.3.4#6332) > > > >