activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Bain <tb...@alumni.duke.edu>
Subject Re: Failed to fill batch
Date Tue, 14 Jun 2016 12:42:23 GMT
This has been seen before (e.g.
http://activemq.2283324.n4.nabble.com/ClassCastException-while-subscribing-to-a-topic-tp4710870.html,
among others), but because we're not able to see the stack trace for the
inner ClassCastException, we don't know what's causing it.

The post I linked to is in the case of a durable topic subscription,
whereas your example is with a queue, so it's something general and
cross-cutting, but we don't know what.

Are you able to reproduce this behavior on a broker whose operation you can
afford to interrupt briefly?  If so, please do the following:
* Download the source for the version of ActiveMQ you're using (5.13.3).
* In your IDE of choice, open the ActiveMQ source as new projects.
* Edit the ActiveMQ start script to cause the JVM to open a remote debug
port (
http://stackoverflow.com/questions/975271/remote-debugging-a-java-application
).
* Attach the debugger from your IDE of choice to the broker as a remote
process.  The exact steps will depend on your IDE, but are well-documented
for the main IDEs, so Google based on your IDE.
* Set a breakpoint on line 409 of
org.apache.activemq.broker.region.cursors.AbstractStoreCursor.
* When you hit that breakpoint, use your debugger's tools to get the inner
exception (the one for the ClassCastException) and print its stack trace
(e.g. by calling printStackTrace() on it and then looking for that output
either in the IDE's console or in the ActiveMQ log files).  In Eclipse,
you'll use the Watch view; other IDEs may have different methods to do this.
* Show us that inner stack trace, which might let us figure out what's
going on.

Tim

On Jun 13, 2016 5:49 AM, "darhon" <darhon.ua@gmail.com> wrote:

> I get a lot of errors in activemq.log:
>
> 2016-06-11 22:23:50,616 | ERROR |
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@queue_name
> ,batchResetNeeded=false,size=2437,cacheEnabled=false,maxBatchSize:200,hasSpace:true,pendingCachedIds.size:0,lastSyncCachedId:null,lastSyncCachedId-seq:null,lastAsyncCachedId:null,lastAsyncCachedId-seq:null,store=permits:10000,sd=nextSeq:257467,lastRet:MessageOrderCursor:[def:255030,
> low:0, high:0],pending:0 - Failed to fill batch |
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor | ActiveMQ
> BrokerService[erased] Task-7598
> java.lang.ClassCastException
> 2016-06-11 22:23:50,618 | ERROR |
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@queue_name
> ,batchResetNeeded=false,size=2437,cacheEnabled=false,maxBatchSize:200,hasSpace:true,pendingCachedIds.size:0,lastSyncCachedId:null,lastSyncCachedId-seq:null,lastAsyncCachedId:null,lastAsyncCachedId-seq:null,store=permits:10000,sd=nextSeq:257467,lastRet:MessageOrderCursor:[def:255030,
> low:0, high:0],pending:0 - Failed to fill batch |
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor | ActiveMQ
> BrokerService[erased] Task-7598
> java.lang.RuntimeException: java.lang.ClassCastException
>         at
>
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:409)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:149)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1947)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2172)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.iterate(Queue.java:1619)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)[activemq-client-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)[activemq-client-5.13.3.jar:5.13.3]
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_71]
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_71]
>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_71]
> 2016-06-11 22:23:50,619 | ERROR | Failed to page in more queue messages  |
> org.apache.activemq.broker.region.Queue | ActiveMQ BrokerService[erased]
> Task-7598
> java.lang.RuntimeException: java.lang.RuntimeException:
> java.lang.ClassCastException
>         at
>
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:152)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1947)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2172)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.broker.region.Queue.iterate(Queue.java:1619)[activemq-broker-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)[activemq-client-5.13.3.jar:5.13.3]
>         at
>
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)[activemq-client-5.13.3.jar:5.13.3]
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_71]
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_71]
>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_71]
>
>
> but I can not understand what exactly causes this errors.
>
> ActiveMQ version: 5.13.3
> Configuration master-slave with shared KahaDB on GlusterFS
>
> My current activemq.xml:
>
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>   http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd">
>
>     <bean
>
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>         <property name="locations">
>             <value>file:${activemq.conf}/credentials.properties</value>
>         </property>
>     </bean>
>
>     <bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
>           lazy-init="false" scope="singleton"
>           init-method="start" destroy-method="stop">
>     </bean>
>
>     <broker xmlns="http://activemq.apache.org/schema/core"
> brokerName="erased" dataDirectory="/opt/activemq/data"
>             schedulerSupport="true" persistent="true">
>
>         <destinationPolicy>
>             <policyMap>
>               <policyEntries>
>                 <policyEntry topic=">" >
>                   <pendingMessageLimitStrategy>
>                     <constantPendingMessageLimitStrategy limit="2000"/>
>                   </pendingMessageLimitStrategy>
>                 </policyEntry>
>                 <policyEntry queue=">" prioritizedMessages="true"
> useCache="false" expireMessagesPeriod="0" queuePrefetch="1" />
>               </policyEntries>
>             </policyMap>
>         </destinationPolicy>
>
>         <managementContext>
>             <managementContext createConnector="true"/>
>         </managementContext>
>
>         <persistenceAdapter>
>             <kahaDB directory="/opt/activemq/data/kahadb"/>
>         </persistenceAdapter>
>
>           <systemUsage>
>             <systemUsage>
>                 <memoryUsage>
>                     <memoryUsage percentOfJvmHeap="80" />
>                 </memoryUsage>
>                 <storeUsage>
>                     <storeUsage limit="40 gb"/>
>                 </storeUsage>
>                 <tempUsage>
>                     <tempUsage limit="10 gb"/>
>                 </tempUsage>
>             </systemUsage>
>         </systemUsage>
>
>         <transportConnectors>
>             <transportConnector name="openwire"
> uri="tcp://
> 0.0.0.0:61616?maximumConnections=8000&amp;wireFormat.maxFrameSize=104857600
> "/>
>             <transportConnector name="stomp+nio"
> uri="stomp+nio://
> 0.0.0.0:61613?maximumConnections=8000&amp;wireFormat.maxFrameSize=104857600
> "/>
>         </transportConnectors>
>
>         <shutdownHooks>
>             <bean xmlns="http://www.springframework.org/schema/beans"
> class="org.apache.activemq.hooks.SpringContextHook" />
>         </shutdownHooks>
>
>     </broker>
>
>     <import resource="jetty.xml"/>
>
> </beans>
>
>
> Can anyone help to find the cause of the problem?
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Failed-to-fill-batch-tp4712924.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message