You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Engelking (JIRA)" <ji...@apache.org> on 2017/05/25 19:14:04 UTC

[jira] [Updated] (ARTEMIS-1184) Large MQTT publish packet size fails when using QoS 1

     [ https://issues.apache.org/jira/browse/ARTEMIS-1184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Engelking updated ARTEMIS-1184:
--------------------------------------
    Description: 
Attempting to publish an MQTT packed sized at roughly 1.9MB works when sending over QoS 0, but when attempting to publish on QoS 1, the publication fails.  MQTT specification seems to allow for messages up to the size of 256MB, and we have been able to use other MQTT brokers (Mosquitto) to send this size of packet in the past.

artemis.log

13:52:05,883 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
13:52:05,896 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
13:52:05,932 INFO  [org.apache.activemq.artemis.core.server] AMQ221013: Using NIO Journal
13:52:05,971 INFO  [org.apache.activemq.artemis.core.server] AMQ221057: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being defined as 477,364,224
13:52:05,993 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE
13:52:05,995 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP
13:52:06,057 INFO  [org.apache.activemq.artemis.core.server] AMQ221034: Waiting indefinitely to obtain live lock
13:52:06,058 INFO  [org.apache.activemq.artemis.core.server] AMQ221035: Live Server Obtained live lock
13:52:08,136 ERROR [org.apache.activemq.artemis.core.server] AMQ224009: Cannot find message 51
13:52:08,202 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue DLQ
13:52:08,204 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue ExpiryQueue
13:52:10,130 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ,OPENWIRE]
13:52:10,146 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]
13:52:10,160 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5672 for protocols [AMQP]
13:52:10,174 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:1883 for protocols [MQTT]
13:52:10,189 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61613 for protocols [STOMP]
13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0 [0.0.0.0, nodeID=fa30922b-416c-11e7-8816-e8b1fcef7ed2] 
13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241001: HTTP Server started at http://localhost:8161
13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available at http://localhost:8161/jolokia
13:54:42,018 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendAddRecord::java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal: java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal
	at org.apache.activemq.artemis.core.io.buffer.TimedBuffer.checkSize(TimedBuffer.java:188) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.io.AbstractSequentialFile.fits(AbstractSequentialFile.java:168) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.switchFileIfNecessary(JournalImpl.java:2875) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendRecord(JournalImpl.java:2597) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.access$200(JournalImpl.java:88) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$1.run(JournalImpl.java:744) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]

13:54:42,023 WARN  [org.apache.activemq.artemis.core.server] AMQ222057: It was not possible to add references due to an IO error code 6 message = null
13:54:42,024 WARN  [org.apache.activemq.artemis.core.server] AMQ222104: IO Error completing the transaction, code = 6, message = null
13:54:42,024 ERROR [org.apache.activemq.artemis.core.protocol.mqtt] Pub Sync Failed
13:54:42,024 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendUpdateRecord:java.lang.NullPointerException: java.lang.NullPointerException
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$2.run(JournalImpl.java:809) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]



  was:
Attempting to publish an MQTT packed sized at roughly 1.9MB works when sending over QoS 0, but when attempting to publish on QoS 1, the publication fails.  MQTT specification seems to allow for messages up to the size of 256MB.

artemis.log

13:52:05,883 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
13:52:05,896 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
13:52:05,932 INFO  [org.apache.activemq.artemis.core.server] AMQ221013: Using NIO Journal
13:52:05,971 INFO  [org.apache.activemq.artemis.core.server] AMQ221057: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being defined as 477,364,224
13:52:05,993 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT
13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE
13:52:05,995 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP
13:52:06,057 INFO  [org.apache.activemq.artemis.core.server] AMQ221034: Waiting indefinitely to obtain live lock
13:52:06,058 INFO  [org.apache.activemq.artemis.core.server] AMQ221035: Live Server Obtained live lock
13:52:08,136 ERROR [org.apache.activemq.artemis.core.server] AMQ224009: Cannot find message 51
13:52:08,202 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue DLQ
13:52:08,204 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue ExpiryQueue
13:52:10,130 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ,OPENWIRE]
13:52:10,146 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]
13:52:10,160 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5672 for protocols [AMQP]
13:52:10,174 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:1883 for protocols [MQTT]
13:52:10,189 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61613 for protocols [STOMP]
13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0 [0.0.0.0, nodeID=fa30922b-416c-11e7-8816-e8b1fcef7ed2] 
13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241001: HTTP Server started at http://localhost:8161
13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available at http://localhost:8161/jolokia
13:54:42,018 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendAddRecord::java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal: java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal
	at org.apache.activemq.artemis.core.io.buffer.TimedBuffer.checkSize(TimedBuffer.java:188) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.io.AbstractSequentialFile.fits(AbstractSequentialFile.java:168) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.switchFileIfNecessary(JournalImpl.java:2875) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendRecord(JournalImpl.java:2597) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.access$200(JournalImpl.java:88) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$1.run(JournalImpl.java:744) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]

13:54:42,023 WARN  [org.apache.activemq.artemis.core.server] AMQ222057: It was not possible to add references due to an IO error code 6 message = null
13:54:42,024 WARN  [org.apache.activemq.artemis.core.server] AMQ222104: IO Error completing the transaction, code = 6, message = null
13:54:42,024 ERROR [org.apache.activemq.artemis.core.protocol.mqtt] Pub Sync Failed
13:54:42,024 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendUpdateRecord:java.lang.NullPointerException: java.lang.NullPointerException
	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$2.run(JournalImpl.java:809) [artemis-journal-2.1.0.jar:2.1.0]
	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]




> Large MQTT publish packet size fails when using QoS 1
> -----------------------------------------------------
>
>                 Key: ARTEMIS-1184
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1184
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: MQTT
>    Affects Versions: 2.1.0
>            Reporter: Justin Engelking
>
> Attempting to publish an MQTT packed sized at roughly 1.9MB works when sending over QoS 0, but when attempting to publish on QoS 1, the publication fails.  MQTT specification seems to allow for messages up to the size of 256MB, and we have been able to use other MQTT brokers (Mosquitto) to send this size of packet in the past.
> artemis.log
> 13:52:05,883 INFO  [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
> 13:52:05,896 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=./data/journal,bindingsDirectory=./data/bindings,largeMessagesDirectory=./data/large-messages,pagingDirectory=./data/paging)
> 13:52:05,932 INFO  [org.apache.activemq.artemis.core.server] AMQ221013: Using NIO Journal
> 13:52:05,971 INFO  [org.apache.activemq.artemis.core.server] AMQ221057: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being defined as 477,364,224
> 13:52:05,993 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE
> 13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP
> 13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
> 13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT
> 13:52:05,994 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE
> 13:52:05,995 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP
> 13:52:06,057 INFO  [org.apache.activemq.artemis.core.server] AMQ221034: Waiting indefinitely to obtain live lock
> 13:52:06,058 INFO  [org.apache.activemq.artemis.core.server] AMQ221035: Live Server Obtained live lock
> 13:52:08,136 ERROR [org.apache.activemq.artemis.core.server] AMQ224009: Cannot find message 51
> 13:52:08,202 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue DLQ
> 13:52:08,204 INFO  [org.apache.activemq.artemis.core.server] AMQ221003: Deploying queue ExpiryQueue
> 13:52:10,130 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HORNETQ,OPENWIRE]
> 13:52:10,146 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]
> 13:52:10,160 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:5672 for protocols [AMQP]
> 13:52:10,174 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:1883 for protocols [MQTT]
> 13:52:10,189 INFO  [org.apache.activemq.artemis.core.server] AMQ221020: Started NIO Acceptor at 0.0.0.0:61613 for protocols [STOMP]
> 13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
> 13:52:10,191 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0 [0.0.0.0, nodeID=fa30922b-416c-11e7-8816-e8b1fcef7ed2] 
> 13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241001: HTTP Server started at http://localhost:8161
> 13:52:11,487 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available at http://localhost:8161/jolokia
> 13:54:42,018 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendAddRecord::java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal: java.lang.IllegalStateException: Can't write records bigger than the bufferSize(501760) on the journal
> 	at org.apache.activemq.artemis.core.io.buffer.TimedBuffer.checkSize(TimedBuffer.java:188) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.core.io.AbstractSequentialFile.fits(AbstractSequentialFile.java:168) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.switchFileIfNecessary(JournalImpl.java:2875) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendRecord(JournalImpl.java:2597) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl.access$200(JournalImpl.java:88) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$1.run(JournalImpl.java:744) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
> 	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]
> 13:54:42,023 WARN  [org.apache.activemq.artemis.core.server] AMQ222057: It was not possible to add references due to an IO error code 6 message = null
> 13:54:42,024 WARN  [org.apache.activemq.artemis.core.server] AMQ222104: IO Error completing the transaction, code = 6, message = null
> 13:54:42,024 ERROR [org.apache.activemq.artemis.core.protocol.mqtt] Pub Sync Failed
> 13:54:42,024 ERROR [org.apache.activemq.artemis.core.journal.impl.JournalImpl] appendUpdateRecord:java.lang.NullPointerException: java.lang.NullPointerException
> 	at org.apache.activemq.artemis.core.journal.impl.JournalImpl$2.run(JournalImpl.java:809) [artemis-journal-2.1.0.jar:2.1.0]
> 	at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
> 	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)