[jira] [Comment Edited] (AMQ-6142) ActiveMQBytesMessage decompress throws DataFormatException incorrect header check

2016-04-08 Thread Christopher L. Shannon (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232035#comment-15232035
 ] 

Christopher L. Shannon edited comment on AMQ-6142 at 4/8/16 11:14 AM:
--

Yep agreed, lets roll back the sync I added.  I think the Jira reported for 
AMQ-5857 was about client side and not the broker side (since 
reduceMemoryFootprint exists to clear the duplicate state, at least for 
queues).  I would say we either need to roll that commit back as well or maybe 
figure out a way so that the client can clear out the state but the broker 
won't clear it out until it is safe to do so.


was (Author: christopher.l.shannon):
Yep agreed, lets roll back the sync I added.  I think the Jira reported for 
AMQ-5857 was about client side and not the broker side (since 
reduceMemoryFootprint exists to clear the duplicate state, at least for 
queues).  I would say we either need to roll that back that commit as well or 
maybe figure out a way so that the client can clear out the state but the 
broker won't clear it out until it is safe to do so.

> ActiveMQBytesMessage decompress throws DataFormatException incorrect header 
> check
> -
>
> Key: AMQ-6142
> URL: https://issues.apache.org/jira/browse/AMQ-6142
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.10.2, 5.12.1, 5.11.3, 5.13.0
>Reporter: Claudio Tagliola
>Assignee: Christopher L. Shannon
> Fix For: 5.13.1, 5.14.0
>
> Attachments: Client.java, MessageListener.java, Server.java, 
> amq-6142.diff, pom.xml
>
>
> In our environment we use an embedded broker. On one topic where compression 
> is enabled, the server is also listening in on the messages. From ActiveMQ 
> 5.10.0 up to 5.13.0, we encounter DataFormatException: incorrect header check 
> exceptions on the tcp clients due to corruption of the payload. Attached are 
> a test server and client. At some point, the client will exit due to 
> mentioned exception. Increase chances by running multiple clients. This 
> scenario works with 5.8.0 and 5.9.1.
> If the server has multiple consumers on the same topic, they will encounter 
> corruption as well, but this has other side-effects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (AMQ-6142) ActiveMQBytesMessage decompress throws DataFormatException incorrect header check

2016-04-07 Thread Gary Tully (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15230472#comment-15230472
 ] 

Gary Tully edited comment on AMQ-6142 at 4/7/16 6:35 PM:
-

[~cshannon] I think rolling back the sync is best, then thinking of mutation 
being ok on your own copy which implies maybe doing more copies and those not 
sharing mutable state. Client side there is typically a copy per consumer. 
Broker side there is a single copy of the message at the moment and the 
reduceMemoryFootPrint policy can control whacking the duplicate state on 
send/store for a queue. concurrentStoreAndDispatch muddies that a bit.



was (Author: gtully):
[~cshannon] I think rolling back the sync is best, then thinking of mutation 
being ok on your own copy which implies maybe doing more copies and those not 
sharing mutable state. Client side there is typically a copy per consumer. 
Broker side there is a single copy of the message at the moment and the 
reduceMemoryFootPrint policy can control whacking the duplicate state on 
send/store for a queue. concurrentStoreAndDispatch muddies that a bit.
For topics, maybe when the message is invm, we force a marshall/store on the 
send and can be done with a single shared message. Because each consumer may or 
may not want marshalling it is a little tricky, but it is only vm consumers 
that would not marshall.

> ActiveMQBytesMessage decompress throws DataFormatException incorrect header 
> check
> -
>
> Key: AMQ-6142
> URL: https://issues.apache.org/jira/browse/AMQ-6142
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.10.2, 5.12.1, 5.11.3, 5.13.0
>Reporter: Claudio Tagliola
>Assignee: Christopher L. Shannon
> Fix For: 5.13.1, 5.14.0
>
> Attachments: Client.java, MessageListener.java, Server.java, 
> amq-6142.diff, pom.xml
>
>
> In our environment we use an embedded broker. On one topic where compression 
> is enabled, the server is also listening in on the messages. From ActiveMQ 
> 5.10.0 up to 5.13.0, we encounter DataFormatException: incorrect header check 
> exceptions on the tcp clients due to corruption of the payload. Attached are 
> a test server and client. At some point, the client will exit due to 
> mentioned exception. Increase chances by running multiple clients. This 
> scenario works with 5.8.0 and 5.9.1.
> If the server has multiple consumers on the same topic, they will encounter 
> corruption as well, but this has other side-effects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (AMQ-6142) ActiveMQBytesMessage decompress throws DataFormatException incorrect header check

2016-04-06 Thread Christopher L. Shannon (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15228649#comment-15228649
 ] 

Christopher L. Shannon edited comment on AMQ-6142 at 4/6/16 5:02 PM:
-

[~gtully], Seems like this same issue reported in AMQ-6218 that caused me to 
add synchronization has also come up before in AMQ-2966.  What do you think 
about rolling back the fix I added from AMQ-5857 that clears out the text field 
after marshalling?  That was the start of all of these issues since state is 
now mutated and before it wasn't.  The downside is that the data would once 
again be stored twice leading to possible OOM issues, including for clients 
which is why originally AMQ-5857 was submitted.  So it would be nice to be able 
to clear it out but not if other concurrent issues keep popping up.

Also, on a related note having to do with changing message state during 
dispatch, as I was digging back through some of this stuff I was looking at the 
reduceMemoryFootPrint flag and wondering if it could be applied to topics.  I'm 
guessing it caused issues before so it wasn't applied (maybe with concurrent 
store and dispatch for topics) but it would be useful to be able to turn it on, 
especially if concurrent store and dispatch is off, which is the default.  


was (Author: christopher.l.shannon):
[~Gary Tully], Seems like this same issue reported in AMQ-6218 that caused me 
to add synchronization has also come up before in AMQ-2966.  What do you think 
about rolling back the fix I added from AMQ-5857 that clears out the text field 
after marshalling?  That was the start of all of these issues since state is 
now mutated and before it wasn't.  The downside is that the data would once 
again be stored twice leading to possible OOM issues, including for clients 
which is why originally AMQ-5857 was submitted.  So it would be nice to be able 
to clear it out but not if other concurrent issues keep popping up.

Also, on a related note having to do with changing message state during 
dispatch, as I was digging back through some of this stuff I was looking at the 
reduceMemoryFootPrint flag and wondering if it could be applied to topics.  I'm 
guessing it caused issues before so it wasn't applied (maybe with concurrent 
store and dispatch for topics) but it would be useful to be able to turn it on, 
especially if concurrent store and dispatch is off, which is the default.  

> ActiveMQBytesMessage decompress throws DataFormatException incorrect header 
> check
> -
>
> Key: AMQ-6142
> URL: https://issues.apache.org/jira/browse/AMQ-6142
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.10.2, 5.12.1, 5.11.3, 5.13.0
>Reporter: Claudio Tagliola
>Assignee: Christopher L. Shannon
> Fix For: 5.13.1, 5.14.0
>
> Attachments: Client.java, MessageListener.java, Server.java, 
> amq-6142.diff, pom.xml
>
>
> In our environment we use an embedded broker. On one topic where compression 
> is enabled, the server is also listening in on the messages. From ActiveMQ 
> 5.10.0 up to 5.13.0, we encounter DataFormatException: incorrect header check 
> exceptions on the tcp clients due to corruption of the payload. Attached are 
> a test server and client. At some point, the client will exit due to 
> mentioned exception. Increase chances by running multiple clients. This 
> scenario works with 5.8.0 and 5.9.1.
> If the server has multiple consumers on the same topic, they will encounter 
> corruption as well, but this has other side-effects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (AMQ-6142) ActiveMQBytesMessage decompress throws DataFormatException incorrect header check

2016-01-25 Thread Claudio Tagliola (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15115226#comment-15115226
 ] 

Claudio Tagliola edited comment on AMQ-6142 at 1/25/16 2:02 PM:


Stack trace:
{noformat}
javax.jms.JMSException: java.util.zip.DataFormatException: incorrect header 
check
at 
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72)
at 
org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:884)
at 
org.apache.activemq.command.ActiveMQBytesMessage.getBodyLength(ActiveMQBytesMessage.java:198)
at 
com.foo.bar.activemqtest.MessageListener.onMessage(MessageListener.java:11)
at 
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1393)
at 
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
at 
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
at 
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at 
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: java.util.zip.DataFormatException: incorrect 
header check
at 
org.apache.activemq.command.ActiveMQBytesMessage.decompress(ActiveMQBytesMessage.java:902)
at 
org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:876)
... 10 more
Caused by: java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:259)
at java.util.zip.Inflater.inflate(Inflater.java:280)
at 
org.apache.activemq.command.ActiveMQBytesMessage.decompress(ActiveMQBytesMessage.java:898)
... 11 more
{noformat}


was (Author: tagliola):
Stack trace:
{noformat}
javax.jms.JMSException: java.util.zip.DataFormatException: incorrect header 
check
at 
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72)
at 
org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:884)
at 
org.apache.activemq.command.ActiveMQBytesMessage.getBodyLength(ActiveMQBytesMessage.java:198)
at 
com.imc.activemqtest.MessageListener.onMessage(MessageListener.java:11)
at 
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1393)
at 
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
at 
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
at 
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at 
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: java.util.zip.DataFormatException: incorrect 
header check
at 
org.apache.activemq.command.ActiveMQBytesMessage.decompress(ActiveMQBytesMessage.java:902)
at 
org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:876)
... 10 more
Caused by: java.util.zip.DataFormatException: incorrect header check
at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:259)
at java.util.zip.Inflater.inflate(Inflater.java:280)
at 
org.apache.activemq.command.ActiveMQBytesMessage.decompress(ActiveMQBytesMessage.java:898)
... 11 more
{noformat}

> ActiveMQBytesMessage decompress throws DataFormatException incorrect header 
> check
> -
>
> Key: AMQ-6142
> URL: https://issues.apache.org/jira/browse/AMQ-6142
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.10.2, 5.12.1, 5.11.3, 5.13.0
>Reporter: Claudio Tagliola
>
> In our environment we use an embedded broker. On one topic, the server is 
> also listening in on the messages. From ActiveMQ 5.10.0 up to 5.13.0, we 
> encounter DataFormatException: incorrect header check exceptions on the tcp 
> clients due to corruption of the payload. Attached are a test server and 
> client. At some point, the client will exit due to mentioned exception.