停止Redistributor时,等待任务完成超时

时间:2014-06-30 02:35:23

标签: jboss jms hornetq

我收到了一堆警告节目

09:56:11,069 WARN  [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-5 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete
09:56:11,092 WARN  [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-12 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete
09:56:11,108 WARN  [org.hornetq.core.server.cluster.impl.Redistributor] (Thread-2 (HornetQ-server-HornetQServerImpl::serverUUID=98ea621a-fdd7-11e3-9e48-33de940622fd-752268326)) Timed out waiting for tasks to complete

只有一些监控作业同时运行。

环境是jboss-eap-6.0和hornetq 2.2.16,它被配置为多播。

堆栈跟踪显示

at org.hornetq.core.server.cluster.impl.Redistributor.stop(Redistributor.java:107)
at org.hornetq.core.server.impl.QueueImpl.cancelRedistributor(QueueImpl.java:673)
at org.hornetq.core.server.impl.QueueImpl$2.run(QueueImpl.java:521)
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:104)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Redistributor的源代码显示

public synchronized void stop() throws Exception {
    active = false;
    Future future = new Future();
    executor.execute(future);
    boolean ok = future.await(100000);
    if (!ok) Redistributor.log.war("Timed out wating for tasks to complete");
}

Future的源代码显示

public synchronized void run() {
    done = true;
    notify();
}

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

这是一个错误,我正在寻找复制此问题的测试。

https://issues.jboss.org/browse/HORNETQ-1167