Bug 997782 - [QA] (6.4.0) Calling message.clearBody() on large message after failover throws RuntimeException
Summary: [QA] (6.4.0) Calling message.clearBody() on large message after failover thro...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: HornetQ
Version: 6.1.1
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: DR1
: EAP 6.4.0
Assignee: Justin Bertram
QA Contact: Miroslav Novak
URL:
Whiteboard:
Depends On:
Blocks: 1132168 1132206
TreeView+ depends on / blocked
 
Reported: 2013-08-16 08:26 UTC by Miroslav Novak
Modified: 2019-08-19 12:44 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1132206 (view as bug list)
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miroslav Novak 2013-08-16 08:26:26 UTC
Description of problem:

When client receives a large message and calls clearBody() on it during failover then RuntimeException is thrown. 

It seems that according to JMS API [1] there should be JMSException. 

[1] http://docs.oracle.com/javaee/6/api/javax/jms/Message.html#clearBody%28%29

Stack trace from receiver:
16:49:31,108 Thread-25 ERROR [org.jboss.qa.hornetq.apps.clients.ReceiverTransAck:161] Exception was thrown during receiving messages:
java.lang.RuntimeException: HQ119060: Large Message Transmission interrupted on consumer shutdown.
	at org.hornetq.core.client.impl.ClientLargeMessageImpl.getBodyBuffer(ClientLargeMessageImpl.java:103)
	at org.hornetq.jms.client.HornetQBytesMessage.getBuffer(HornetQBytesMessage.java:448)
	at org.hornetq.jms.client.HornetQBytesMessage.clearBody(HornetQBytesMessage.java:416)
	at org.jboss.qa.hornetq.apps.clients.Client.cleanMessage(Client.java:82)
	at org.jboss.qa.hornetq.apps.clients.ReceiverTransAck.receiveMessage(ReceiverTransAck.java:343)
	at org.jboss.qa.hornetq.apps.clients.ReceiverTransAck.run(ReceiverTransAck.java:130)
Caused by: HornetQException[errorType=LARGE_MESSAGE_INTERRUPTED message=HQ119060: Large Message Transmission interrupted on consumer shutdown.]
	at org.hornetq.core.client.impl.LargeMessageControllerImpl.cancel(LargeMessageControllerImpl.java:236)
	at org.hornetq.core.client.impl.ClientConsumerImpl.resetLargeMessageController(ClientConsumerImpl.java:801)
	at org.hornetq.core.client.impl.ClientConsumerImpl.clearAtFailover(ClientConsumerImpl.java:528)
	at org.hornetq.core.client.impl.ClientSessionImpl.handleFailover(ClientSessionImpl.java:1167)
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:1041)
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:710)
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:580)
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl.access$100(ClientSessionFactoryImpl.java:85)
	at org.hornetq.core.client.impl.ClientSessionFactoryImpl$1.run(ClientSessionFactoryImpl.java:426)
	at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:106)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
	at java.lang.Thread.run(Thread.java:780)

Comment 5 Justin Bertram 2014-07-22 20:15:05 UTC
This is fixed on the 2.3.x branch of HornetQ via commit f519f1e25207121fe81e351ac1c3797fef62087e.

Comment 6 Kabir Khan 2014-08-24 11:00:09 UTC
Appears to be fixed by HQ upgrade to 2.3.21 https://bugzilla.redhat.com/show_bug.cgi?id=1132168. Setting to MODIFIED.

Comment 7 Martin Svehla 2014-09-17 13:37:14 UTC
Verified in EAP 6.4.0.DR1.1


Note You need to log in before you can comment on or make changes to this bug.