[jira] [Resolved] (ARTEMIS-4814) Remove linear iteration to get direct bindings
[ https://issues.apache.org/jira/browse/ARTEMIS-4814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4814. -- Resolution: Fixed > Remove linear iteration to get direct bindings > -- > > Key: ARTEMIS-4814 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4814 > Project: ActiveMQ Artemis > Issue Type: Task > Components: Broker >Affects Versions: 2.35.0 >Reporter: Josh Byster >Priority: Minor > Fix For: 2.36.0 > > Time Spent: 3.5h > Remaining Estimate: 0h > > Currently, with 500K+ queues, the cleanup step of {{TempQueueCleanerUpper}} > requires invoking {{WildcardAddressManager#getDirectBindings}}, which is O(k) > in the number of queues. > From method profiling, this can consume up to 95% of our CPU time when > needing to clean up many of these. > It would be nice to make this more efficient, which shouldn't be difficult > given the iteration just does a simple equality check. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Updated] (ARTEMIS-4814) Remove linear iteration to get direct bindings
[ https://issues.apache.org/jira/browse/ARTEMIS-4814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4814: - Fix Version/s: 2.36.0 > Remove linear iteration to get direct bindings > -- > > Key: ARTEMIS-4814 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4814 > Project: ActiveMQ Artemis > Issue Type: Task > Components: Broker >Reporter: Josh Byster >Priority: Minor > Fix For: 2.36.0 > > Time Spent: 3.5h > Remaining Estimate: 0h > > Currently, with 500K+ queues, the cleanup step of {{TempQueueCleanerUpper}} > requires invoking {{WildcardAddressManager#getDirectBindings}}, which is O(k) > in the number of queues. > From method profiling, this can consume up to 95% of our CPU time when > needing to clean up many of these. > It would be nice to make this more efficient, which shouldn't be difficult > given the iteration just does a simple equality check. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Updated] (ARTEMIS-4814) Remove linear iteration to get direct bindings
[ https://issues.apache.org/jira/browse/ARTEMIS-4814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4814: - Affects Version/s: 2.35.0 > Remove linear iteration to get direct bindings > -- > > Key: ARTEMIS-4814 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4814 > Project: ActiveMQ Artemis > Issue Type: Task > Components: Broker >Affects Versions: 2.35.0 >Reporter: Josh Byster >Priority: Minor > Fix For: 2.36.0 > > Time Spent: 3.5h > Remaining Estimate: 0h > > Currently, with 500K+ queues, the cleanup step of {{TempQueueCleanerUpper}} > requires invoking {{WildcardAddressManager#getDirectBindings}}, which is O(k) > in the number of queues. > From method profiling, this can consume up to 95% of our CPU time when > needing to clean up many of these. > It would be nice to make this more efficient, which shouldn't be difficult > given the iteration just does a simple equality check. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Resolved] (ARTEMIS-4820) AMQP TTL message property being treated as int instead of uint
[ https://issues.apache.org/jira/browse/ARTEMIS-4820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4820. -- Resolution: Fixed > AMQP TTL message property being treated as int instead of uint > -- > > Key: ARTEMIS-4820 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4820 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.35.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.36.0 > > Time Spent: 20m > Remaining Estimate: 0h > > When setting message expiration from AMQP header TTL the value should be > treated as an unsigned integer but is instead being read as a signed integer. > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4820) AMQP TTL message property being treated as int instead of uint
Timothy A. Bish created ARTEMIS-4820: Summary: AMQP TTL message property being treated as int instead of uint Key: ARTEMIS-4820 URL: https://issues.apache.org/jira/browse/ARTEMIS-4820 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.35.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.36.0 When setting message expiration from AMQP header TTL the value should be treated as an unsigned integer but is instead being read as a signed integer. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Resolved] (ARTEMIS-4817) AMQP Federation address policy doesn't allow credit configuration to override parent settings
[ https://issues.apache.org/jira/browse/ARTEMIS-4817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4817. -- Resolution: Fixed > AMQP Federation address policy doesn't allow credit configuration to override > parent settings > - > > Key: ARTEMIS-4817 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4817 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.34.0, 2.35.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.36.0 > > Time Spent: 20m > Remaining Estimate: 0h > > When processing address matches the federation address policy manager doesn't > check against the address policy for a receiver credits value but instead > looks at the parent level settings which means if the global value is set to > zero and the address policy has an override this is missed and it won't > federate an address. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4817) AMQP Federation address policy doesn't allow credit configuration to override parent settings
Timothy A. Bish created ARTEMIS-4817: Summary: AMQP Federation address policy doesn't allow credit configuration to override parent settings Key: ARTEMIS-4817 URL: https://issues.apache.org/jira/browse/ARTEMIS-4817 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.35.0, 2.34.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.36.0 When processing address matches the federation address policy manager doesn't check against the address policy for a receiver credits value but instead looks at the parent level settings which means if the global value is set to zero and the address policy has an override this is missed and it won't federate an address. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Commented] (AMQ-9513) AMQP 1.0 message with multiple Data sections can be sent to broker but corrupted
[ https://issues.apache.org/jira/browse/AMQ-9513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17853200#comment-17853200 ] Timothy A. Bish commented on AMQ-9513: -- Just a note of clarification here, proton-j is perfectly capable of handling messages with multiple Data sections in them, only the simple Message wrapper object provided by proton-j for basic message use cases does not handle that case. You would need to refactor the classic code to not use that and instead handle messages in such a way as to allow those multiple Data sections to pass through or be converted if going from AMQP to Openwire message types. > AMQP 1.0 message with multiple Data sections can be sent to broker but > corrupted > > > Key: AMQ-9513 > URL: https://issues.apache.org/jira/browse/AMQ-9513 > Project: ActiveMQ Classic > Issue Type: Bug > Components: AMQP >Affects Versions: 5.18.4, 6.1.2 >Reporter: Yuriy Lepikhov >Priority: Major > > ActiveMQ Classic uses Qpid Proton-J to support AMQP 1.0, but Qpid Proton-J > does not support messages with multiple Data sections (see, PROTON-2299). > One can send such message to broker, broker will accept such message, but it > will use last odd Data section as message body (no exception thrown or > warning logged). > It is even possible to receive such message from broker, but it will contain > fewer bytes than original (and may be not from beginning). > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Resolved] (ARTEMIS-4801) AMQP Session address query cache can have invalid state for long lived sessions
[ https://issues.apache.org/jira/browse/ARTEMIS-4801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4801. -- Resolution: Fixed > AMQP Session address query cache can have invalid state for long lived > sessions > --- > > Key: ARTEMIS-4801 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4801 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.34.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.35.0 > > Time Spent: 20m > Remaining Estimate: 0h > > The AMQPSessionCallback retains a map of AddressQueryResult instances for > previous address checks. This map is not updated if the state of broker > addresses changes, neither addresses added, removed or updated states are > reflected in the cache. This leads to issues for long running sessions where > a link attach may fail for a non-existent address and on a later attempt > should succeed if the address was added but can't because the cache will > still hold the non-exists query result. Other scenarios are possible such as > an address removed and re-added with different routing type but the former > case is more serious. > The cache should be removed and if a similar optimization is actually found > to be needed a better mechanism should be chosen to avoid the issues found. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4801) AMQP Session address query cache can have invalid state for long lived sessions
Timothy A. Bish created ARTEMIS-4801: Summary: AMQP Session address query cache can have invalid state for long lived sessions Key: ARTEMIS-4801 URL: https://issues.apache.org/jira/browse/ARTEMIS-4801 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.34.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.35.0 The AMQPSessionCallback retains a map of AddressQueryResult instances for previous address checks. This map is not updated if the state of broker addresses changes, neither addresses added, removed or updated states are reflected in the cache. This leads to issues for long running sessions where a link attach may fail for a non-existent address and on a later attempt should succeed if the address was added but can't because the cache will still hold the non-exists query result. Other scenarios are possible such as an address removed and re-added with different routing type but the former case is more serious. The cache should be removed and if a similar optimization is actually found to be needed a better mechanism should be chosen to avoid the issues found. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4799) Broker Connection Receiver attach handled incorrectly
Timothy A. Bish created ARTEMIS-4799: Summary: Broker Connection Receiver attach handled incorrectly Key: ARTEMIS-4799 URL: https://issues.apache.org/jira/browse/ARTEMIS-4799 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.34.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.35.0 The AMQP Broker Connection Receiver configuration creates a receiver for messages from a remote AMQP source however the attach handling is not properly handled leading to a receiver that thinks it is operating as an opened anonymous relay sender meaning it only routes messages with a set 'To' field in the properties. The receiver attach should be using the locally defined target as the address for incoming messages and ignore an 'To' value in the message properties. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Updated] (ARTEMIS-4792) Add support for setting consumer priority on AMQP Receiver Source addresses
[ https://issues.apache.org/jira/browse/ARTEMIS-4792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4792: - Summary: Add support for setting consumer priority on AMQP Receiver Source addresses (was: Add support for setting consumer priority on AMQP Source address) > Add support for setting consumer priority on AMQP Receiver Source addresses > --- > > Key: ARTEMIS-4792 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4792 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP >Affects Versions: 2.34.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.35.0 > > > When creating a receiver link from a client the only way currently to adjust > the consumer priority on the broker is to set a value in the receiver > properties to indicate the desired priority. For some client AMQP client > libraries this is not simple or not possible in the provided API. To solve > this we can add support for parsing URI type options from the source address > of the receiver attach and look for the option "consumer-priority" which is > also used by the Core client to configure consumer priority (Openwire clients > can do the same via an openwire client property "consumer.priority"). > This updates the client receiver attach to extract properties from the > address the source which have the form: > {code:java} > address?consumer-priority=1{code} > -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4792) Add support for setting consumer priority on AMQP Source address
Timothy A. Bish created ARTEMIS-4792: Summary: Add support for setting consumer priority on AMQP Source address Key: ARTEMIS-4792 URL: https://issues.apache.org/jira/browse/ARTEMIS-4792 Project: ActiveMQ Artemis Issue Type: New Feature Components: AMQP Affects Versions: 2.34.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.35.0 When creating a receiver link from a client the only way currently to adjust the consumer priority on the broker is to set a value in the receiver properties to indicate the desired priority. For some client AMQP client libraries this is not simple or not possible in the provided API. To solve this we can add support for parsing URI type options from the source address of the receiver attach and look for the option "consumer-priority" which is also used by the Core client to configure consumer priority (Openwire clients can do the same via an openwire client property "consumer.priority"). This updates the client receiver attach to extract properties from the address the source which have the form: {code:java} address?consumer-priority=1{code} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Resolved] (ARTEMIS-4788) AMQP Federation Broker connection can deadlock broker shutdown
[ https://issues.apache.org/jira/browse/ARTEMIS-4788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4788. -- Fix Version/s: 2.35.0 Resolution: Fixed > AMQP Federation Broker connection can deadlock broker shutdown > -- > > Key: ARTEMIS-4788 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4788 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.33.0, 2.34.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.35.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > In a rare race between broker shutdown and create of federation consumer the > broker connection federation manager can deadlock and hang the shutdown of > the broker. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Updated] (ARTEMIS-4788) AMQP Federation Broker connection can deadlock broker shutdown
[ https://issues.apache.org/jira/browse/ARTEMIS-4788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4788: - Affects Version/s: 2.34.0 > AMQP Federation Broker connection can deadlock broker shutdown > -- > > Key: ARTEMIS-4788 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4788 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.33.0, 2.34.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > > In a rare race between broker shutdown and create of federation consumer the > broker connection federation manager can deadlock and hang the shutdown of > the broker. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Created] (ARTEMIS-4788) AMQP Federation Broker connection can deadlock broker shutdown
Timothy A. Bish created ARTEMIS-4788: Summary: AMQP Federation Broker connection can deadlock broker shutdown Key: ARTEMIS-4788 URL: https://issues.apache.org/jira/browse/ARTEMIS-4788 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.33.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish In a rare race between broker shutdown and create of federation consumer the broker connection federation manager can deadlock and hang the shutdown of the broker. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org For additional commands, e-mail: issues-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact
[jira] [Comment Edited] (ARTEMIS-4777) Broker connections (AMQP) with receiver operation not working
[ https://issues.apache.org/jira/browse/ARTEMIS-4777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17848315#comment-17848315 ] Timothy A. Bish edited comment on ARTEMIS-4777 at 5/21/24 6:06 PM: --- The broker connection senders and receivers operate on matching Queues as not so clearly described in the documentation, and not on a simple address match as you are trying to configure. In your case when configuring the receiver it won't attach to the remote unless a queue is created under the matched address 'test' which means you need a local consumer on the address to trigger the receiver being created on the remote. I'd guess that the intended use case for broker connection address senders and receivers was mainly around actual queues and not for multicast addresses, although as mentioned above you can make it happen with a consumer attached. For multicast it doesn't make a ton of sense to bring across messages if there's no place for them to go once they arrive which is why this was mainly geared towards queues. There is a call out for this behavior in the documentation after the XML configuration examples bq. Receivers can only be matched to a local queue that already exists. Therefore, if receivers are being used, ensure that queues are pre-created locally. Otherwise, the broker cannot match the remote queues and addresses. was (Author: tabish121): The broker connection senders and receivers operate on matching Queues as not so clearly described in the documentation, and not on a simple address match as you are trying to configure. In your case when configuring the receiver it won't attach to the remote unless a queue is created under the matched address 'test' which means you need a local consumer on the address to trigger the receiver being created on the remote. I'd guess that the intended use case for broker connection address senders and receivers was mainly around actual queues and not for multicast addresses, although as mentioned above you can make it happen with a consumer attached. For multicast it doesn't make a ton of sense to bring across messages if there's no place for them to go once they arrive which is why this was mainly geared towards queues. There is a call out for this behavior in the documentation after the XML configuration examples {noformat} Receivers can only be matched to a local queue that already exists. Therefore, if receivers are being used, ensure that queues are pre-created locally. Otherwise, the broker cannot match the remote queues and addresses. {noformat} > Broker connections (AMQP) with receiver operation not working > - > > Key: ARTEMIS-4777 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4777 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.33.0 > Environment: Server installed on CentOS Linux release 7.9.2009 >Reporter: Piero Cena >Priority: Major > > Trying to connect an Artemis instance to an instance of ActiveMQ Classic 5.15 > in order to receive messages from one destination (preferably a topic > destination). Here is the configuration on Artemis instance: > {code:xml} > > retry-interval="1000" reconnect-attempts="2" user="xxx{*}" password="xxx{*}"> > > > {code} > The address "test" is predefined as multicast on Artemis and exists on the > other side: > {code:xml} > > > {code} > On startup Artemis will connect correctly to Classic but no message is > received on the Artemis side when published to the Classic destination "test". > The same test has done with two Artemis brokers, one configured as above, but > the results are the same. > Only "sender" or "mirror" operations seem to work properly (between 2 > Artemis). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (ARTEMIS-4777) Broker connections (AMQP) with receiver operation not working
[ https://issues.apache.org/jira/browse/ARTEMIS-4777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17848315#comment-17848315 ] Timothy A. Bish edited comment on ARTEMIS-4777 at 5/21/24 6:05 PM: --- The broker connection senders and receivers operate on matching Queues as not so clearly described in the documentation, and not on a simple address match as you are trying to configure. In your case when configuring the receiver it won't attach to the remote unless a queue is created under the matched address 'test' which means you need a local consumer on the address to trigger the receiver being created on the remote. I'd guess that the intended use case for broker connection address senders and receivers was mainly around actual queues and not for multicast addresses, although as mentioned above you can make it happen with a consumer attached. For multicast it doesn't make a ton of sense to bring across messages if there's no place for them to go once they arrive which is why this was mainly geared towards queues. There is a call out for this behavior in the documentation after the XML configuration examples {noformat} Receivers can only be matched to a local queue that already exists. Therefore, if receivers are being used, ensure that queues are pre-created locally. Otherwise, the broker cannot match the remote queues and addresses. {noformat} was (Author: tabish121): The broker connection senders and receivers operate on matching Queues as not so clearly described in the documentation, and not on a simple address match as you are trying to configure. In your case when configuring the receiver it won't attach to the remote unless a queue is created under the matched address 'test' which means you need a local consumer on the address to trigger the receiver being created on the remote. I'd guess that the intended use case for broker connection address senders and receivers was mainly around actual queues and not for multicast addresses, although as mentioned above you can make it happen with a consumer attached. For multicast it doesn't make a ton of sense to bring across messages if there's no place for them to go once they arrive which is why this was mainly geared towards queues. > Broker connections (AMQP) with receiver operation not working > - > > Key: ARTEMIS-4777 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4777 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.33.0 > Environment: Server installed on CentOS Linux release 7.9.2009 >Reporter: Piero Cena >Priority: Major > > Trying to connect an Artemis instance to an instance of ActiveMQ Classic 5.15 > in order to receive messages from one destination (preferably a topic > destination). Here is the configuration on Artemis instance: > {code:xml} > > retry-interval="1000" reconnect-attempts="2" user="xxx{*}" password="xxx{*}"> > > > {code} > The address "test" is predefined as multicast on Artemis and exists on the > other side: > {code:xml} > > > {code} > On startup Artemis will connect correctly to Classic but no message is > received on the Artemis side when published to the Classic destination "test". > The same test has done with two Artemis brokers, one configured as above, but > the results are the same. > Only "sender" or "mirror" operations seem to work properly (between 2 > Artemis). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4777) Broker connections (AMQP) with receiver operation not working
[ https://issues.apache.org/jira/browse/ARTEMIS-4777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17848315#comment-17848315 ] Timothy A. Bish commented on ARTEMIS-4777: -- The broker connection senders and receivers operate on matching Queues as not so clearly described in the documentation, and not on a simple address match as you are trying to configure. In your case when configuring the receiver it won't attach to the remote unless a queue is created under the matched address 'test' which means you need a local consumer on the address to trigger the receiver being created on the remote. I'd guess that the intended use case for broker connection address senders and receivers was mainly around actual queues and not for multicast addresses, although as mentioned above you can make it happen with a consumer attached. For multicast it doesn't make a ton of sense to bring across messages if there's no place for them to go once they arrive which is why this was mainly geared towards queues. > Broker connections (AMQP) with receiver operation not working > - > > Key: ARTEMIS-4777 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4777 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.33.0 > Environment: Server installed on CentOS Linux release 7.9.2009 >Reporter: Piero Cena >Priority: Major > > Trying to connect an Artemis instance to an instance of ActiveMQ Classic 5.15 > in order to receive messages from one destination (preferably a topic > destination). Here is the configuration on Artemis instance: > {code:xml} > > retry-interval="1000" reconnect-attempts="2" user="xxx{*}" password="xxx{*}"> > > > {code} > The address "test" is predefined as multicast on Artemis and exists on the > other side: > {code:xml} > > > {code} > On startup Artemis will connect correctly to Classic but no message is > received on the Artemis side when published to the Classic destination "test". > The same test has done with two Artemis brokers, one configured as above, but > the results are the same. > Only "sender" or "mirror" operations seem to work properly (between 2 > Artemis). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-1152) Investigate suspected Double-Checked Locking
[ https://issues.apache.org/jira/browse/ARTEMIS-1152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-1152. Resolution: Not A Problem Patterns appear to use correct volatile and locking state, reopen if further evidence is available > Investigate suspected Double-Checked Locking > > > Key: ARTEMIS-1152 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1152 > Project: ActiveMQ Artemis > Issue Type: Wish > Components: Broker >Affects Versions: 2.1.0 >Reporter: Jiri Daněk >Priority: Minor > Attachments: ActiveMQThreadPoolExecutor.java.png, > ManagementServiceImpl.java.png > > > Coverity found instance of Double-Checked Locking. According to the resources > at the end, the variable has to either be declared volatile, or > double-checked locking should not be used, or the variable has to be atomic > (int, float, ...). Otherwise, in a general case this may lead to threads > accessing partially initialized objects. > There is 9 Coverity finds in the category "Data race undermines locking", the > following one looks to me as clear examples of the Double-Checked Locking > pattern > h4. ActiveMQJMSContext.java > {noformat} > 130 private void checkSession() { > 1. thread1_checks_field: Thread1 uses the value read from field session > in the condition session == null. It sees that the condition is true. > > CID 1409080 (#2-1 of 2): Check of thread-shared field evades lock acquisition > (LOCK_EVASION) > 5. thread2_checks_field_early: Thread2 checks session, reading it after > Thread1 assigns to session but before some of the correlated field > assignments can occur. It sees the condition session == null as being false. > It continues on before the critical section has completed, and can read data > changed by that critical section while it is in an inconsistent state. > Remove this outer, unlocked check of session. > 131 if (session == null) { > 2. thread1_acquires_lock: Thread1 acquires lock ActiveMQJMSContext.this. > 132 synchronized (this) { > 133if (closed) > 134 throw new IllegalStateRuntimeException("Context is closed"); > 3. thread1_double_checks_field: Thread1 double checks the field session > in the condition session == null. > 135if (session == null) { > 136 try { > 137 if (xa) { > 138 session = ((XAConnection) > connection).createXASession(); > 139 } else { > 4. thread1_modifies_field: Thread1 modifies the field session. This > modification can be re-ordered with other correlated field assignments within > this critical section at runtime. Thus, checking the value of session is not > an adequate test that the critical section has completed unless the guarding > lock is held while checking. If session is assigned a newly constructed > value, note that the JVM is allowed to reorder the assignment of the new > reference to session before any field assignments that may occur in the > constructor. Control is switched to Thread2. > 140 session = connection.createSession(sessionMode); > 141 } > 142 } catch (JMSException e) { > 143 throw JmsExceptionUtils.convertToRuntimeException(e); > 144 } > 145} > 146 } > 147 } > 148 } > {noformat} > In addition to that, the demo version of HP Fortify tool reports the > following two additional instances (as well as the previous one already > reported by Coverity). > h4. ActiveMQThreadPoolExecutor.java > !ActiveMQThreadPoolExecutor.java.png! > h4. ManagementServiceImpl.java > !ManagementServiceImpl.java.png! > I came to believe that this warning from the tool is real, at least the first > instance, and that it should be investigated more closely by somebody more > experienced. > #. http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html > #. > https://www.securecoding.cert.org/confluence/display/java/LCK10-J.+Use+a+correct+form+of+the+double-checked+locking+idiom -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4745) Allow configuration of AMQP federation pull consumer batch size
Timothy A. Bish created ARTEMIS-4745: Summary: Allow configuration of AMQP federation pull consumer batch size Key: ARTEMIS-4745 URL: https://issues.apache.org/jira/browse/ARTEMIS-4745 Project: ActiveMQ Artemis Issue Type: Improvement Components: AMQP Affects Versions: 2.33.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.34.0 When Queue federation receiver links are configured to only pull messages from the remote when local capacity allows it they grant a fixed credit window amount of link credits currently. In some cases control over this batch size value is beneficial. We can add an additional configuration property to convey this limit to the federation configuration -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4744) AMQP broker connections don't fully support multi host URIs
Timothy A. Bish created ARTEMIS-4744: Summary: AMQP broker connections don't fully support multi host URIs Key: ARTEMIS-4744 URL: https://issues.apache.org/jira/browse/ARTEMIS-4744 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.33.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.34.0 When configuring a multi host connection URI for an AMQP broker connection the connection will utilize some but not all of the configuration. The broker will attempt connection to each host and port part specific on the URI but does not apply configuration specific to a given host. This can lead to failure on connect due to using the TLS configuration from the first host when attempting to connect to the following N hosts. Users need to be able to configure TLS specific options per host as values such as host verification, SNI and trust stores can vary amongst hosts. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-2682) OpenWireMessageConverter refactoring
[ https://issues.apache.org/jira/browse/ARTEMIS-2682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2682. Resolution: Abandoned > OpenWireMessageConverter refactoring > > > Key: ARTEMIS-2682 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2682 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: OpenWire >Affects Versions: 2.12.0 >Reporter: Federico Valeri >Priority: Minor > Labels: openwire, refactoring > Time Spent: 3.5h > Remaining Estimate: 0h > > I'm proposing the {{OpenWireMessageConverter}} refactoring to have a similar > layout as the {{AMQPConverter}}. The latter has two dedicated classes for > inbound and outbound messages with a singleton entry point for the converter. > This change is basically doing the same without semantics change and also > adding a unit test for the converter. I'm also eliminating some duplicated > code, but the bulk of the code remains untouched. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-1383) Improved Priority queue
[ https://issues.apache.org/jira/browse/ARTEMIS-1383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-1383. Resolution: Abandoned > Improved Priority queue > --- > > Key: ARTEMIS-1383 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1383 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: Broker >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > The original PriorityLinkedList implementation is based on a double linked > list implementation that suffer of: > * fragmentation along the heap > * pointer chasing due to the presence of nodes > * allocation heavy (ie each add operation forces allocation of nodes) > * high hidden (ie the nodes) memory footprint that lead to wrong memory > estimations > It is possible to provide a specialized chunked implementation that can > address all these issues while providing a better performance (throughput, > latency and memory footprint wise). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4047) Artemis does not send message to consumer AMQP
[ https://issues.apache.org/jira/browse/ARTEMIS-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17836352#comment-17836352 ] Timothy A. Bish commented on ARTEMIS-4047: -- This seems like a candidate for closure given the comment from [~jbertram] There are no known issues with consumer blockages in the AMQP bits that we are currently aware of. > Artemis does not send message to consumer AMQP > -- > > Key: ARTEMIS-4047 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4047 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.25.0, 2.26.0 >Reporter: daves >Priority: Major > Attachments: 1.PNG, 2.PNG, 3.PNG, 4.PNG, 5.PNG, All.zip > > > The broker does not send messages from one of many existing queues to the > connected consumer. > According to the UI the queue does contain ~15k messages. > I’m not able to consume any of these messages. I also tried to read a message > using the browse function of the UI/console but that does not work eighter. > The message was created by a AMQP client and should be consumed by another > AMQP client. > I tried to capture the situation in a few screenshots… > I don’t know which data can help you to understand the situation, so I’ve > collected everything: > * Logs > * Broker > * Data > Please let me know if there are any other data I should add to the ticket. > I don’t think that the code of my client is relevant since the problem only > exist for a single queue…but here it is anyway: > {code:java} > using Amqp; > using Amqp.Framing; > using Amqp.Types; > namespace Test; > public sealed class MessageConsumer > { > private readonly String _address; > private readonly CancellationToken _cancellationToken; > private readonly String _consumerName; > private readonly String[] _destinations; > public MessageConsumer( String address, String consumerName, String[] > destinations, CancellationToken cancellationToken ) > { > _address = address; > _consumerName = consumerName; > _destinations = destinations; > _cancellationToken = cancellationToken; > } > public async Task StartReceivingMessages() > { > await Task.Yield(); > while ( !_cancellationToken.IsCancellationRequested ) > { > var connectionFactory = new ConnectionFactory(); > var address = new Address( _address ); > try > { > var connection = await connectionFactory.CreateAsync( address > ); > var session = ( (IConnection) connection ).CreateSession(); > var receivers = new List(); > foreach ( var destination in _destinations ) > { > var receiver = session.CreateReceiver( > $"{_consumerName}_{destination}", > new Source > { > Address = > destination, > Capabilities = > new[] { new Symbol( "queue" ) } > } ); > receivers.Add( receiver ); > } > while ( !_cancellationToken.IsCancellationRequested ) > foreach ( var receiver in receivers ) > { > // ReceiveAsync( TimeSpan.Zero ); blocks forever and > no messages will be received > var message = await receiver.ReceiveAsync( > TimeSpan.FromMilliseconds( 1 ) ); > if ( message == null ) > continue; > receiver.Accept( message ); > Console.WriteLine( $"{_consumerName} - Received > message with id: '{message.Properties.MessageId}'" ); > } > } > catch ( Exception ex ) > { > Console.WriteLine( $"{_consumerName} - Connection error in > producer '{_consumerName}' {ex.Message} => create new connection." ); > await Task.Delay( 1000, CancellationToken.None ); > } > } > } > }{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-3359) Auto-Create of non-durable queue not possible
[ https://issues.apache.org/jira/browse/ARTEMIS-3359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-3359. Resolution: Information Provided > Auto-Create of non-durable queue not possible > - > > Key: ARTEMIS-3359 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3359 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.16.0 >Reporter: Rene Koch >Priority: Major > > I have a application in which I want to have 1 durable and 1 non-durable > queue in Active MQ Artemis. For connecting to this message bus I use > amqpnetlite (https://github.com/Azure/amqpnetlite) > > {code:java} > var source = new Source() > { > }; > if (durable) > { > source.Address = > amqpAddressConverter.GetSubscriberAddress(address, useLoadBalancing); > source.Durable = 1; > source.ExpiryPolicy = new Symbol("never"); > source.DistributionMode = new Symbol("copy"); > } > else > { > source.Address = > amqpAddressConverter.GetSubscriberAddress(address); > source.Durable = 0; > } > var receiverLink = new ReceiverLink(session, linkName, source, null); > {code} > {{}} > So this is my receiver link. As shown I set the Durable uint of the Source > which will given into the ReceiverLink. > Because as I saw in the Active MQ Artemis documentation, that the Durable is > a boolean but within the amqpnetlite library it is an uint my understanding > is that everything over 0 should be true and 0 should be false. (Seen here: > [http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-terminus-durability)] > At first the behaviour was very strange: Even when the Aretemis Web interface > was shown a queue as durable it would be deleted as soon as no consumer would > be connected. > I found this: > > [https://stackoverflow.com/questions/66360625/activemq-artemis-queue-deleted-after-shutdown-of-consuming-client] > which describes that even durable queues get deleted because of the default > behaviour. > So I changed the broker.xml and set AUTO-DELETE-QUEUE to false. > Since then the behaviour completly switched: > Both (durable = 1 and durable = 0) queues are being still there after the > connection disconnected. > What I saw, either the configuration in the broker.xml - every queue will be > durable = true, it doesn't mather what I set within the Link. > So how to create a durable and a non-durable connection correctly? -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-3359) Auto-Create of non-durable queue not possible
[ https://issues.apache.org/jira/browse/ARTEMIS-3359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17836343#comment-17836343 ] Timothy A. Bish commented on ARTEMIS-3359: -- TerminusDurability is not the same thing as queue durability and so is not used internally for indicating this, the client can you the dynamic node option to create a temporary queue attached to the subscription that will be destroyed when the client disconnects. The TerminusDurabily is only used in one place, appropriately, to indicate the subscription to a topic node is durable or not. That is, the link/terminus is durable or not. Not the queue the broker happens to create (which is an implementation detail, there need not be any queue) in terms of the AMQP specification. > Auto-Create of non-durable queue not possible > - > > Key: ARTEMIS-3359 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3359 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.16.0 >Reporter: Rene Koch >Priority: Major > > I have a application in which I want to have 1 durable and 1 non-durable > queue in Active MQ Artemis. For connecting to this message bus I use > amqpnetlite (https://github.com/Azure/amqpnetlite) > > {code:java} > var source = new Source() > { > }; > if (durable) > { > source.Address = > amqpAddressConverter.GetSubscriberAddress(address, useLoadBalancing); > source.Durable = 1; > source.ExpiryPolicy = new Symbol("never"); > source.DistributionMode = new Symbol("copy"); > } > else > { > source.Address = > amqpAddressConverter.GetSubscriberAddress(address); > source.Durable = 0; > } > var receiverLink = new ReceiverLink(session, linkName, source, null); > {code} > {{}} > So this is my receiver link. As shown I set the Durable uint of the Source > which will given into the ReceiverLink. > Because as I saw in the Active MQ Artemis documentation, that the Durable is > a boolean but within the amqpnetlite library it is an uint my understanding > is that everything over 0 should be true and 0 should be false. (Seen here: > [http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-terminus-durability)] > At first the behaviour was very strange: Even when the Aretemis Web interface > was shown a queue as durable it would be deleted as soon as no consumer would > be connected. > I found this: > > [https://stackoverflow.com/questions/66360625/activemq-artemis-queue-deleted-after-shutdown-of-consuming-client] > which describes that even durable queues get deleted because of the default > behaviour. > So I changed the broker.xml and set AUTO-DELETE-QUEUE to false. > Since then the behaviour completly switched: > Both (durable = 1 and durable = 0) queues are being still there after the > connection disconnected. > What I saw, either the configuration in the broker.xml - every queue will be > durable = true, it doesn't mather what I set within the Link. > So how to create a durable and a non-durable connection correctly? -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-2481) Outdated johnzon-core Library Upgrade to 1.1.13
[ https://issues.apache.org/jira/browse/ARTEMIS-2481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2481. Resolution: Fixed Johnzon has already been updated beyond this, most recently to v1.2.21 in ARTEMIS-4364 > Outdated johnzon-core Library Upgrade to 1.1.13 > --- > > Key: ARTEMIS-2481 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2481 > Project: ActiveMQ Artemis > Issue Type: Improvement >Affects Versions: 2.5.0 >Reporter: Roger Soland >Priority: Minor > > The org.apache.johnzon-core Library the artemis-core-client is built on > should be upgraded to the latest version 1.1.13. > artemis-core-client depends on johnzon-core 0.9.0 which is really outdated > and buggy. We have been struggling with the bug > https://issues.apache.org/jira/browse/JOHNZON-158. a state issue of the > JsonStreamParser Implementation. > By using the Artemis Resource Adapter, the johnzon-core Library is > automatically on our application classpath and brings in the buggy JsonParser. > Also the newest ActiveMQ Artemis Version 2.10.0 is affected > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-1472) Individualize Loggers to Debug Protocol issues.
[ https://issues.apache.org/jira/browse/ARTEMIS-1472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-1472. Resolution: Abandoned Given this has lingered for many years and we've gotten along without any additional changes I'm closing this one. > Individualize Loggers to Debug Protocol issues. > --- > > Key: ARTEMIS-1472 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1472 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: AMQP >Affects Versions: 2.3.0 >Reporter: Clebert Suconic >Assignee: Clebert Suconic >Priority: Major > > AMQP developers will usually set PN_TRACE_FRM as a System.property to get out > some information from Proton regarding the frame processing. > It would be a nice idea to also throw some log.info when that property is set > at Artemis.. around AMQP Processing, making it easier to Debug AMQP packets. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-2605) Unable to create non-durable queue with specific name
[ https://issues.apache.org/jira/browse/ARTEMIS-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2605. Resolution: Not A Problem As discussed in the issue AMQP clients setting terminus durability has no affect on Queue durability as that is not what that field does and AMQP itself has no behavioral linkage to Topics or Queues. > Unable to create non-durable queue with specific name > - > > Key: ARTEMIS-2605 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2605 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.6.2 >Reporter: Dirkjan >Priority: Major > > When attaching as a receiver to create a new queue, it appears Artemis will > try to create a durable queue by default, even if I specify that the queue > should not be durable. If my user does not have permission to create durable > queues (even though it has permission to create non-durable queues), creation > of the queue will fail with a permission error. > More context: > The application I'm targeting usually uses Core messages to do RPC, but it > accepts AMQP messages as well, so it could be that there is a mismatch here > between how things are set up. > > When using Core, I see that ServerSessionPacketHandler triggers on a packet > with type -12 to create the queue with a well-defined name, which in the end > dispatches to ServerSessionImpl.createQueue() with temporary = true and > durable = false. This is the behavior I'm seeking to replicate. However, all > my attempts to create to a temporary non-durable queue by attaching to it > with AMQP seem to be failing so far. > > With my AMQP client, I try to create the response queue by attaching to it > with source address = . This lets me end up in > ProtonServerSenderContext.initialise() by way of > AMQPSessionContext.addSender(). However, this throws a permission error > (AMQ119213, my user does not have permission for CREATE_DURABLE_QUEUE). This > is surprising to me because I leave the "durable" field as default, which > should mean to default to no durability. It seems to happen because > AMQPSessionCallback.queueQuery() calls (through some indirection) > ServerSessionImpl.createQueue() with durable = true. > > I could potentially create non-durable queues by setting dynamic = true, but > in that case Artemis will create the queue with random UUID name, whereas my > user only has permission to create queues with a name with a specific prefix. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-1899) AMQPMessage.getIntProperty() throws "UnsignedInteger cannot be cast to java.lang.Integer"
[ https://issues.apache.org/jira/browse/ARTEMIS-1899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-1899. Resolution: Not A Problem The methods are doing just what they say they do in their names, getting Integer or Long values, not UnsignedInteger or UnsignedLong values, that can be done via getObjectProperty as the issue already points out. The other option is to go to the proton message itself and get the application properties directly. > AMQPMessage.getIntProperty() throws "UnsignedInteger cannot be cast to > java.lang.Integer" > - > > Key: ARTEMIS-1899 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1899 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.6.0 >Reporter: Johan Stenberg >Priority: Minor > > While testing a custom Artemis plugin with a RHEA based AMQP client I > encountered the following exception in the server: > {noformat} > 23:56:57.993 WARN [y-threads)] ?(:) > org.apache.qpid.proton.amqp.UnsignedInteger cannot be cast to > java.lang.Integer > java.lang.ClassCastException: org.apache.qpid.proton.amqp.UnsignedInteger > cannot be cast to java.lang.Integer > at > org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.getIntProperty(AMQPMessage.java:987) > ~[artemis-amqp-protocol-2.6.0.jar:?] > {noformat} > On the client I am setting a message property with an int value and try to > access this int value in the custom plugin on the server via > AMQPMessage.getIntProperty. > The problem lies in the fact that the AMQPMessage.getIntProperty method > simply tries to cast the property to Integer and does not perform the same > conversion as done by > [getObjectProperty|https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L1030]. > Same is true for AMQPMessage.getLongProperty. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-2614) Create queues for AMQP clients based on FQQN
[ https://issues.apache.org/jira/browse/ARTEMIS-2614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2614. Resolution: Won't Fix Based on the discussion in the linked Github pull request it was decided that this is not something that should be added and so I am closing this issue > Create queues for AMQP clients based on FQQN > > > Key: ARTEMIS-2614 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2614 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP >Reporter: Krzysztof Porębski >Priority: Major > Time Spent: 11h 40m > Remaining Estimate: 0h > > As a follow up to the discussion on the mailing list I would like to suggest > a new feature regarding FQQN implementation for AMQP protocol - creating > queues. > Currently there is no way of attaching to a queue using FQQN if the queue is > not configured upfront. It should be changed so it would be possible to > create queue via FQQN and a subset of the following capabilities: > - shared > - topic > - queue -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-2113) When AMQP links are opened and closed in quick succession, Artemis doesn’t always respond with attach/detach frames confirming the opening/closing of the links
[ https://issues.apache.org/jira/browse/ARTEMIS-2113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2113. Resolution: Information Provided This is a limitation of the proton-j protocol engine that cannot process pipelined Open, Begin, Attach and Detach framings due to the temporal squashing being done. The broker has not part at that level and can't intervene. A workaround is to await the initial attach response before sending the detach to ensure the broker has a chance to process the data without pipelining. > When AMQP links are opened and closed in quick succession, Artemis doesn’t > always respond with attach/detach frames confirming the opening/closing of > the links > --- > > Key: ARTEMIS-2113 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2113 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.6.3 > Environment: This test was done in .NET using the Amqp.Net Lite > library 2.1.4 (which is the latest version). >Reporter: Simon Chalmers >Priority: Major > Attachments: ArtemisTest.zip, artemis-2.6.3.log, artemis-2.7.0.log, > dotnet-artemis-2.6.3.txt, dotnet-artemis-2.7.0.txt > > > A trace of a message exchange with Artemis where this has occurred is below. > The lines highlighted in yellow show opening and then closing two AMQP links, > but Artemis doesn’t respond after that with its own attach/detach frames, > which acknowledge the opening/closing of those links. The lines highlighted > in green are heartbeat frames sent to Artemis, sent every 15 seconds, which > illustrates that one minute passed without receiving the attach/detach frames > from Artemis. > SEND AMQP 3 1 0 0 > RECV sasl-mechanisms(sasl-server-mechanisms:[PLAIN,ANONYMOUS]) > SEND sasl-init(mechanism:PLAIN,initial-response:...,hostname:localhost) > RECV sasl-outcome(code:0) > SEND AMQP 0 1.0.0 > SEND (ch=0) > open(container-id:AMQPNetLite-43a6c9ad,host-name:localhost,max-frame-size:262144,channel-max:255,idle-time-out:2147483647) > RECV AMQP 0 1 0 0 > SEND (ch=0) > begin(next-outgoing-id:4294967293,incoming-window:2048,outgoing-window:2048,handle-max:63) > RECV (ch=0) > open(container-id:0.0.0.0,max-frame-size:131072,channel-max:65535,idle-time-out:3,offered-capabilities:[sole-connection-for-container,DELAYED_DELIVERY,SHARED-SUBS,ANONYMOUS-RELAY],properties:[product:apache-activemq-artemis,version:2.6.3]) > {color:#f6c342}SEND (ch=0) > attach(name:link1,handle:0,role:False,source:source(),target:target(address:q1),initial-delivery-count:0) > SEND (ch=0) detach(handle:0,closed:True) > SEND (ch=0) > attach(name:link0,handle:1,role:False,source:source(),target:target(address:q0),initial-delivery-count:0) > SEND (ch=0) detach(handle:1,closed:True){color} > RECV (ch=0) > begin(remote-channel:0,next-outgoing-id:1,incoming-window:2147483647,outgoing-window:2147483647,handle-max:65535) > {color:#14892c}SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty > SEND (ch=0) empty{color} > Note that this doesn’t always happen. Sometimes Artemis does respond, as > shown by the lines highlighted in bold/grey in the trace below. > SEND AMQP 3 1 0 0 > RECV sasl-mechanisms(sasl-server-mechanisms:[PLAIN,ANONYMOUS]) > SEND sasl-init(mechanism:PLAIN,initial-response:...,hostname:localhost) > RECV sasl-outcome(code:0) > SEND AMQP 0 1.0.0 > SEND (ch=0) > open(container-id:AMQPNetLite-b00e0be7,host-name:localhost,max-frame-size:262144,channel-max:255,idle-time-out:2147483647) > RECV AMQP 0 1 0 0 > RECV (ch=0) > open(container-id:0.0.0.0,max-frame-size:131072,channel-max:65535,idle-time-out:3,offered-capabilities:[sole-connection-for-container,DELAYED_DELIVERY,SHARED-SUBS,ANONYMOUS-RELAY],properties:[product:apache-activemq-artemis,version:2.6.3]) > SEND (ch=0) > begin(next-outgoing-id:4294967293,incoming-window:2048,outgoing-window:2048,handle-max:63) > RECV (ch=0) > begin(remote-channel:0,next-outgoing-id:1,incoming-window:2147483647,outgoing-window:2147483647,handle-max:65535) > {color:#f6c342}SEND (ch=0) > attach(name:link1,handle:0,role:False,source:source(),target:target(address:q1),initial-delivery-count:0) > SEND (ch=0) detach(handle:0,closed:True) > SEND (ch=0) > attach(name:link0,handle:1,role:False,source:source(),target:target(address:q0),initial-delivery-count:0) > SEND (ch=0) detach(handle:1,closed:True){color} > *{color:#707070}RECV (ch=0) > attach(name:link1,handle:0,role:True,snd-settle-mode:2,rcv-settle-mode:0,source:source(),target:target(address:q1)){color}* > RECV (ch=0) >
[jira] [Closed] (ARTEMIS-4307) AMQP Artemis "hangs" on single message delivery
[ https://issues.apache.org/jira/browse/ARTEMIS-4307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4307. Resolution: Cannot Reproduce This has likely been addressed by changes in ARTEMIS-4233 amongst other fixes since 2.28.0 and I would recommend updating to the latest release. A reproducer would helpful if the problem still manifests with the latest release > AMQP Artemis "hangs" on single message delivery > --- > > Key: ARTEMIS-4307 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4307 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.28.0 >Reporter: daves >Priority: Major > > My Setup: > - Multiple clients ~500 send messages to a queue in Artemis using AMQP > - A single application reads consumes the messages from the queue using AMQP > At some point - I sadly don't know how to reproduce it - my consuming client > does not receive messages anymore. > From the perspective of my client the call to receiving new messages > (AMQP.NET lite) just hands/waits for messages and never returns. Also, It > still looks like the connection is open and healthy. > On the Artemis side I see two different pictures. > - In the Broker console I can see a consumer from my client, and it tells me > that 1 Messages is in Transit. ...as if Artemis is waiting for an ACK for the > message. > In the Artemis log is see this: > {noformat} > 2023-06-09 15:11:37,934 WARN > [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext] > Array must not be empty or null > java.lang.IllegalArgumentException: Array must not be empty or null > at > org.apache.qpid.proton.codec.CompositeReadableBuffer.append(CompositeReadableBuffer.java:691) > ~[proton-j-0.34.0.jar:?] > at > org.apache.qpid.proton.engine.impl.DeliveryImpl.send(DeliveryImpl.java:345) > ~[proton-j-0.34.0.jar:?] > at org.apache.qpid.proton.engine.impl.SenderImpl.send(SenderImpl.java:74) > ~[proton-j-0.34.0.jar:?] > at > org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliverInitialPacket(ProtonServerSenderContext.java:715) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliver(ProtonServerSenderContext.java:622) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverLarge(ProtonServerSenderContext.java:837) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:567) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.core.paging.cursor.PagedReferenceImpl.run(PagedReferenceImpl.java:116) > ~[artemis-server-2.28.0.jar:2.28.0] > at > io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566) > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > ~[artemis-commons-2.28.0.jar:?] > 2023-06-09 15:11:37,934 WARN [org.apache.activemq.artemis.core.server] > AMQ222151: removing consumer which did not handle a message, > consumer=ServerConsumerImpl [id=3, filter=null, binding=LocalQueueBinding > [address=MyQName, queue=QueueImpl[name=MyQName, postOffice=PostOfficeImpl > [server=ActiveMQServerImpl::name=MyApp], temp=false]@776d381a, filter=null, > name=MyQName, clusterName=MyQName431ed7e1-05dd-11ee-ade9-f44d30e2ecf9]], > message=PagedReferenceImpl [message=PagedMessageImpl [queueIDs=[47], > transactionID=-1, page=25, message=AMQPLargeMessage( [durable=false, > messageID=12940183, address=MyQName, size=0, scanningStatus=SCANNED, > applicationProperties={atmid=CHE8128, > content-type=application/x-protobuf, content-version=2.0, >
[jira] [Closed] (ARTEMIS-2059) NettyWritable should use UTF-8 exact length to encode strings
[ https://issues.apache.org/jira/browse/ARTEMIS-2059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-2059. Resolution: Not A Problem Closing this as the discussion seems to have concluded there was no broker side issue here and no further work as been done here. > NettyWritable should use UTF-8 exact length to encode strings > - > > Key: ARTEMIS-2059 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2059 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Minor > Time Spent: 0.5h > Remaining Estimate: 0h > > NettyWritable.put(String) tries to enlarge the buffer used to write a UTF-8 > string until ByteBufUtil.utf8MaxBytes. > That means that it will fail or will enlarge any ByteBuf that is perfectly > sized to contain the encoded string. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-889) dispositions sent after link is detached with close=false and no error are ignored
[ https://issues.apache.org/jira/browse/ARTEMIS-889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17836202#comment-17836202 ] Timothy A. Bish commented on ARTEMIS-889: - It's quite likely it behaves exactly as it did before as the proton-j bits haven't really changed since then > dispositions sent after link is detached with close=false and no error are > ignored > -- > > Key: ARTEMIS-889 > URL: https://issues.apache.org/jira/browse/ARTEMIS-889 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 1.5.1 >Reporter: Gordon Sim >Priority: Major > > See > https://issues.apache.org/jira/browse/DISPATCH-595?focusedCommentId=15745826=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15745826 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4720) Add additional example for AMQP federation showing TLS configuration
Timothy A. Bish created ARTEMIS-4720: Summary: Add additional example for AMQP federation showing TLS configuration Key: ARTEMIS-4720 URL: https://issues.apache.org/jira/browse/ARTEMIS-4720 Project: ActiveMQ Artemis Issue Type: Task Components: ActiveMQ-Artemis-Examples, AMQP Affects Versions: 2.33.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.34.0 Add a new example in the AMQP Federation examples showing how to configure the broker connections to use TLS to connect to the remote. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-209) [AMQP] Broker sends frames after SASL failure
[ https://issues.apache.org/jira/browse/ARTEMIS-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835785#comment-17835785 ] Timothy A. Bish commented on ARTEMIS-209: - About the same place as before, proton-j still does this but I don't see it being changed. There is protonj2 now but there is no effort to replace the existing protocol head so the issue continues to exist in the broker as before. > [AMQP] Broker sends frames after SASL failure > - > > Key: ARTEMIS-209 > URL: https://issues.apache.org/jira/browse/ARTEMIS-209 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: AMQP >Affects Versions: 1.0.0 > Environment: SASL negotiation over AMQP >Reporter: Charles E. Rolke >Assignee: Timothy A. Bish >Priority: Major > > The client sends bogus credentials to the Artemis server. The server > correctly fails with sasl.outcome code: auth(1). So far so good. Then the > server sends an AMQP protocol negotiation frame as if everything was OK. > After failing SASL the server should close the connection. > Trace file: > https://people.apache.org/~chug/artemis/20150821-1/artemis-sasl-fail-but-sends-amqp-header.html > From the trace: > {noformat} > 10.10.1.1:1340 -> 10.10.10.254:5672 -> init SASL (3): (1.0.0) > 10.10.1.1:1340 -> 10.10.10.254:5672 -> method sasl.init > 10.10.1.1:1340 <- 10.10.10.254:5672 <-init SASL (3): (1.0.0), method > sasl.mechanisms, method sasl.outcome > 10.10.1.1:1340 <- 10.10.10.254:5672 <-init AMQP (0): (1.0.0) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4666. -- Resolution: Fixed > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.34.0 > > Time Spent: 50m > Remaining Estimate: 0h > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4666: - Fix Version/s: 2.34.0 > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.34.0 > > Time Spent: 40m > Remaining Estimate: 0h > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834374#comment-17834374 ] Timothy A. Bish commented on ARTEMIS-4666: -- I took some time to track this down and it comes down to a bug in the XML parsing that is not correctly configuring the Queue match policy and when an Openwire client connects there are false positive matches on the advisory destinations that come into existence which can't be auto created on the remote and the federation connection breaks. You could work around the issue by setting the address match in your configuration to a specific Queue name you want to federate instead of a wildcard. > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Assignee: Timothy A. Bish >Priority: Major > Time Spent: 40m > Remaining Estimate: 0h > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish reassigned ARTEMIS-4666: Assignee: Timothy A. Bish > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Assignee: Timothy A. Bish >Priority: Major > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-3262) Cannot get max-hops >= 2 federation to work
[ https://issues.apache.org/jira/browse/ARTEMIS-3262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-3262. -- Resolution: Information Provided > Cannot get max-hops >= 2 federation to work > --- > > Key: ARTEMIS-3262 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3262 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.17.0, 2.20.0 > Environment: Artemis 2.17.0 on 3 Linux machines > Dragonwell OpenJDK 11.0.10 >Reporter: Zhang Xiang >Priority: Major > Labels: ActiveMQ, federation > > I want to construct a 3-level MQTT message forwarding system: > A → B → C > Once a message publish under the topic "from-A" to A, all clients subscribing > "from-A" on B and C should receive that message. > Here is the config of B: > > {code:xml} > > tcp://192.168.1.200:61616 > > > > > true > > connector-A > > > > > > > > > > > > > > > > {code} > And here is the config of C: > > > {code:xml} > > tcp://192.168.1.100:61616 > > > > > > connector-C > > > > > > > > > > > > > > > > {code} > The problem is that even I've set max-hops to 2, the message cannot be > forwarded for more than 1 time. > > * If I published a "from-A" message to B, all clients subscribing "from-A" > on C could receive the message. > * If I published a "from-A" message to A, all clients subscribing "from-A" > on B could receive the message, but clients on C wouldn't! > The example config files provided by the software packages do not cover this > kind of situations, nor do the documentation. > Please tell me if it is a bug and if not, what should I do. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-3262) Cannot get max-hops >= 2 federation to work
[ https://issues.apache.org/jira/browse/ARTEMIS-3262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831977#comment-17831977 ] Timothy A. Bish commented on ARTEMIS-3262: -- This is a configuration issue, the max-hops value isn't actually needed in this scenario as there is no loop of federated brokers that could cause cycling. If you wanted to add max hops to this setup you should set the value to two on both brokers or set as the message is getting stopped right now from moving to C from B when published on A is because the configuration on C says only one hop is allowed and the message already hopped once from A to B. > Cannot get max-hops >= 2 federation to work > --- > > Key: ARTEMIS-3262 > URL: https://issues.apache.org/jira/browse/ARTEMIS-3262 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.17.0, 2.20.0 > Environment: Artemis 2.17.0 on 3 Linux machines > Dragonwell OpenJDK 11.0.10 >Reporter: Zhang Xiang >Priority: Major > Labels: ActiveMQ, federation > > I want to construct a 3-level MQTT message forwarding system: > A → B → C > Once a message publish under the topic "from-A" to A, all clients subscribing > "from-A" on B and C should receive that message. > Here is the config of B: > > {code:xml} > > tcp://192.168.1.200:61616 > > > > > true > > connector-A > > > > > > > > > > > > > > > > {code} > And here is the config of C: > > > {code:xml} > > tcp://192.168.1.100:61616 > > > > > > connector-C > > > > > > > > > > > > > > > > {code} > The problem is that even I've set max-hops to 2, the message cannot be > forwarded for more than 1 time. > > * If I published a "from-A" message to B, all clients subscribing "from-A" > on C could receive the message. > * If I published a "from-A" message to A, all clients subscribing "from-A" > on B could receive the message, but clients on C wouldn't! > The example config files provided by the software packages do not cover this > kind of situations, nor do the documentation. > Please tell me if it is a bug and if not, what should I do. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4703) Add additional Queue federation example for AMQP federation
[ https://issues.apache.org/jira/browse/ARTEMIS-4703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4703: - Affects Version/s: 2.33.0 (was: 2.34.0) > Add additional Queue federation example for AMQP federation > --- > > Key: ARTEMIS-4703 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4703 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.33.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Trivial > Fix For: 2.33.0 > > > Add an additional Queue federation example showing how to federate queue > messages through an intermediary broker. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4703) Add additional Queue federation example for AMQP federation
[ https://issues.apache.org/jira/browse/ARTEMIS-4703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4703: - Fix Version/s: 2.34.0 (was: 2.33.0) > Add additional Queue federation example for AMQP federation > --- > > Key: ARTEMIS-4703 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4703 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.33.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Trivial > Fix For: 2.34.0 > > > Add an additional Queue federation example showing how to federate queue > messages through an intermediary broker. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4703) Add additional Queue federation example for AMQP federation
Timothy A. Bish created ARTEMIS-4703: Summary: Add additional Queue federation example for AMQP federation Key: ARTEMIS-4703 URL: https://issues.apache.org/jira/browse/ARTEMIS-4703 Project: ActiveMQ Artemis Issue Type: Task Components: AMQP Affects Versions: 2.34.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 Add an additional Queue federation example showing how to federate queue messages through an intermediary broker. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-4660) BAD_COPY_PASTE in VersionedStompFrameHandler.java
[ https://issues.apache.org/jira/browse/ARTEMIS-4660?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4660. Resolution: Duplicate > BAD_COPY_PASTE in VersionedStompFrameHandler.java > - > > Key: ARTEMIS-4660 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4660 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: ActiveMQ-Artemis-Native >Affects Versions: 2.32.0 >Reporter: Andrey Slepykh >Assignee: Clebert Suconic >Priority: Minor > Labels: easyfix, pull-request-available > > PR: > [https://github.com/apache/activemq-artemis/pull/4835/commits/b893c6c4d35b42ee2364144c8850bd104caf6fe7] > In 1st branch (line 274) of the {{if()}} statement, the > {{Boolean.parseBoolean()}} method accepts the value > {{{}frame.getHeader(Stomp.Headers.Subscribe.NO_LOCAL){}}}, which is used in > line 273. > In 2nd branch (line 276), the {{Boolean.parseBoolean()}} method accepts the > value {{{}frame.getHeader(Stomp.Headers.Subscribe.NO_LOCAL){}}}, although the > other value {{frame.hasHeader(Stomp.Headers.Subscribe.ACTIVEMQ_NO_LOCAL)}} is > used. > Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE. > Author A. Slepykh. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-4661) DLS_DEAD_LOCAL_STORE in AMQPLargeMessage.java
[ https://issues.apache.org/jira/browse/ARTEMIS-4661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4661. Resolution: Duplicate > DLS_DEAD_LOCAL_STORE in AMQPLargeMessage.java > - > > Key: ARTEMIS-4661 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4661 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: ActiveMQ-Artemis-Native >Affects Versions: 2.32.0 >Reporter: Andrey Slepykh >Assignee: Clebert Suconic >Priority: Minor > Labels: easy-fix, pull-request-available > > PR: > [https://github.com/apache/activemq-artemis/pull/4835/commits/dafef6784743b1ecdf085a19e65efb41224d26c4] > The local variable constructorPos is initialized with the value of > buffer.position() in line 330, but the variable itself is not used anywhere > else, which may indicate an error. > Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE. > Author A. Slepykh. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-4662) BAD_COPY_PASTE in ActiveMQScheduledLeaseLock.java
[ https://issues.apache.org/jira/browse/ARTEMIS-4662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4662. Resolution: Duplicate > BAD_COPY_PASTE in ActiveMQScheduledLeaseLock.java > - > > Key: ARTEMIS-4662 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4662 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: ActiveMQ-Artemis-Native >Affects Versions: 2.32.0 >Reporter: Andrey Slepykh >Assignee: Clebert Suconic >Priority: Minor > Labels: easy-fix, pull-request-available > > PR: > [https://github.com/apache/activemq-artemis/pull/4835/commits/b893c6c4d35b42ee2364144c8850bd104caf6fe7] > In the detectAndReportRenewSlowness() method, the logger.error() and > logger.warn() methods are called 3 times. > In two of the three calls, the method arguments correspond to parameters that > are tested in the if() conditional construct. > Also, the arguments of the logger.error() and logger.warn() methods are > identical in lines 139 and 141, respectively, which may indicate that they > were copied incorrectly. > Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE. > Author A. Slepykh. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4683) Add additional examples for AMQP federation
Timothy A. Bish created ARTEMIS-4683: Summary: Add additional examples for AMQP federation Key: ARTEMIS-4683 URL: https://issues.apache.org/jira/browse/ARTEMIS-4683 Project: ActiveMQ Artemis Issue Type: Task Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 Add additional examples to the features examples demonstrating various configurations for AMQP federation so setup common typologies or use cases such as multicast fanout or queue federation priority settings. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823693#comment-17823693 ] Timothy A. Bish commented on ARTEMIS-4666: -- Likely then there is some interplay in core federation and openwire clients that is not accounted for. I would suggest having a look at the new AMQP federation over [AMQP broker connections|https://activemq.apache.org/components/artemis/documentation/latest/amqp-broker-connections.html#federation] although you might need to wait for the next release for the latest round of fixes there as well. The other option is to create an integration test that demonstrates the issue to try and help getting someone to look into it. > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Priority: Major > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823348#comment-17823348 ] Timothy A. Bish commented on ARTEMIS-4666: -- Looks like you only defined the Queue on server 1 and not on server 2, I'd define it on both. > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Priority: Major > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4666) Federated queue consumers do not receive messages on classic clients
[ https://issues.apache.org/jira/browse/ARTEMIS-4666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823315#comment-17823315 ] Timothy A. Bish commented on ARTEMIS-4666: -- I don't think the broker test suite does any checks for Openwire specifically when using the Core federation bits. Looking at the test sample you have supplied in Github I notice that you do not statically define the Queues in the broker configuration and I know from looking at the federation code that it is not always going to cope with that as one might think. I'd recommend trying your tests after having defined the address and queues your sample is going to use and see if that allows it to pass. > Federated queue consumers do not receive messages on classic clients > > > Key: ARTEMIS-4666 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4666 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Federation >Affects Versions: 2.32.0 >Reporter: Josh Byster >Priority: Major > > Federated queues with A upstream and downstream to B do not seem to work as > expected when the client JMS implementation is ActiveMQ Classic v5.16.2 (used > in my example, but also verified the issue is present with v5.18.3 and > v6.0.1). With Artemis JMS as the client, it seems to work as expected. > When running a producer on A and a consumer on B with the classic > org.apache.activemq.ActiveMQConnectionFactory, the consumer on B does not > consume any messages that the producer sends. When B is restarted, it then > consumes the messages. > This works properly with ActiveMQ Artemis > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory. I've > created a minimal reproducible example > [here|https://github.com/josh-byster/artemis-classic-consumer-bug/tree/master]. > Running server1 and server2 and then first starting up the Consumer then > running the Producer class, we can see that no messages are logged in console > by the consumer. When you restart the consumer, the messages are consumed. > This is an issue whether you attach a MessageListener or you call receive() > directly. If you switch the ActiveMQConnectionFactory implementation to > Artemis, it works as expected. > I don't think this necessarily warrants a fix if it's an issue specifically > with the classic client, since the solution is just to upgrade clients to > Artemis. However, if it is something that can be patched on the server, that > would be great. I do, however, think it would be good to note this down in > the docs that it's not supported with classic clients, since I spent a while > debugging it. However, most other features do work as expected with the > clients running the classic version, which is much appreciated as it makes > migration significantly easier. > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation tests
[ https://issues.apache.org/jira/browse/ARTEMIS-4665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4665. -- Resolution: Fixed > Fix intermittent failures in a few AMQP federation tests > > > Key: ARTEMIS-4665 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 1h 40m > Remaining Estimate: 0h > > Add some additional state checks in the server to server test for AMQP > federation ensure an address send isn't discarded before the remote receiver > has attached which is causing some intermittent test failures, also add some > other state checks to ensure test prerequisites are in place. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation tests
[ https://issues.apache.org/jira/browse/ARTEMIS-4665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4665: - Description: Add some additional state checks in the server to server test for AMQP federation ensure an address send isn't discarded before the remote receiver has attached which is causing some intermittent test failures, also add some other state checks to ensure test prerequisites are in place. (was: Add some additional state checks in the server to server test for AMQP federation ensure an address send isn't discard before the remote receiver has attached which is causing some intermittent test failures) > Fix intermittent failures in a few AMQP federation tests > > > Key: ARTEMIS-4665 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Add some additional state checks in the server to server test for AMQP > federation ensure an address send isn't discarded before the remote receiver > has attached which is causing some intermittent test failures, also add some > other state checks to ensure test prerequisites are in place. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation tests
[ https://issues.apache.org/jira/browse/ARTEMIS-4665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4665: - Summary: Fix intermittent failures in a few AMQP federation tests (was: Fix intermittent failures in a few AMQP federation address tests) > Fix intermittent failures in a few AMQP federation tests > > > Key: ARTEMIS-4665 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Add some additional state checks in the server to server test for AMQP > federation ensure an address send isn't discard before the remote receiver > has attached which is causing some intermittent test failures -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Reopened] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation address tests
[ https://issues.apache.org/jira/browse/ARTEMIS-4665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish reopened ARTEMIS-4665: -- > Fix intermittent failures in a few AMQP federation address tests > > > Key: ARTEMIS-4665 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Add some additional state checks in the server to server test for AMQP > federation ensure an address send isn't discard before the remote receiver > has attached which is causing some intermittent test failures -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation address tests
[ https://issues.apache.org/jira/browse/ARTEMIS-4665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4665. -- Resolution: Fixed > Fix intermittent failures in a few AMQP federation address tests > > > Key: ARTEMIS-4665 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Add some additional state checks in the server to server test for AMQP > federation ensure an address send isn't discard before the remote receiver > has attached which is causing some intermittent test failures -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4665) Fix intermittent failures in a few AMQP federation address tests
Timothy A. Bish created ARTEMIS-4665: Summary: Fix intermittent failures in a few AMQP federation address tests Key: ARTEMIS-4665 URL: https://issues.apache.org/jira/browse/ARTEMIS-4665 Project: ActiveMQ Artemis Issue Type: Task Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 Add some additional state checks in the server to server test for AMQP federation ensure an address send isn't discard before the remote receiver has attached which is causing some intermittent test failures -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4658) AMQP Federation should prevent reflection of multicast messages between nodes
Timothy A. Bish created ARTEMIS-4658: Summary: AMQP Federation should prevent reflection of multicast messages between nodes Key: ARTEMIS-4658 URL: https://issues.apache.org/jira/browse/ARTEMIS-4658 Project: ActiveMQ Artemis Issue Type: Improvement Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 When using a topology where brokers are dual federating messages for addresses the federation producers and consumers should prevent reflection between the two nodes. This allows for more complex configuration where the max hops value is insufficient to prevent duplicates and cases of infinite reflection if the user forgets to configure max hops. Such a case would be a hub and spoke type setup where the producers and consumers are on each of the spokes and the hub is the way point, here the max hops needs to be set to '2' but this allows for a reflection from the hub back to the sending spoke. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4645) Update AMQP broker connection tests to use better connector names
[ https://issues.apache.org/jira/browse/ARTEMIS-4645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4645. -- Resolution: Fixed > Update AMQP broker connection tests to use better connector names > - > > Key: ARTEMIS-4645 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4645 > Project: ActiveMQ Artemis > Issue Type: Task > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.33.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Update various AMQP broker connection tests to use more unique names for > broker connections and policies to provide more details in logs of the > various tests that make them identifiable -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4653) AMQP Federation should apply queue consumer filters for demand
Timothy A. Bish created ARTEMIS-4653: Summary: AMQP Federation should apply queue consumer filters for demand Key: ARTEMIS-4653 URL: https://issues.apache.org/jira/browse/ARTEMIS-4653 Project: ActiveMQ Artemis Issue Type: Improvement Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 For Queue federation the federation consumers should apply a consumer defined filter over the Queue defined filter to avoid pulling message across the link that won't be deliverable. Add options for disabling this and also disabling per consumer consumer priority tracking to allow for reduction of federation links when desired. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4645) Update AMQP broker connection tests to use better connector names
Timothy A. Bish created ARTEMIS-4645: Summary: Update AMQP broker connection tests to use better connector names Key: ARTEMIS-4645 URL: https://issues.apache.org/jira/browse/ARTEMIS-4645 Project: ActiveMQ Artemis Issue Type: Task Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 Update various AMQP broker connection tests to use more unique names for broker connections and policies to provide more details in logs of the various tests that make them identifiable -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4642) AMQP Federation demand tracking can under count demand in some narrow cases
Timothy A. Bish created ARTEMIS-4642: Summary: AMQP Federation demand tracking can under count demand in some narrow cases Key: ARTEMIS-4642 URL: https://issues.apache.org/jira/browse/ARTEMIS-4642 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 In some narrow cases the AMQP federation demand tracking can under count the demand on an address or queue and should track more closely the current demand regardless of a federation link being active. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4641) Allow AMQP federation to recover from missing or removed resources
Timothy A. Bish created ARTEMIS-4641: Summary: Allow AMQP federation to recover from missing or removed resources Key: ARTEMIS-4641 URL: https://issues.apache.org/jira/browse/ARTEMIS-4641 Project: ActiveMQ Artemis Issue Type: Improvement Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 When an AMQP federation instance attempts to federate an address or queue it can fail if the remote address or queue is not present or cannot be created based on broker policy. A federation link can also closed if the federated resource is removed from the remote broker by management etc. In those cases the remote broker should note the resources that were targets of federation and send alerts to the source federation broker to notify it that these resources become available for federation and the source should attempt again to create federation links if demand still exists. This allows an AMQP federation instance to heal itself based on updates from the remote. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4626) AMQP Federation demand tracking can overcount demand
[ https://issues.apache.org/jira/browse/ARTEMIS-4626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4626. -- Resolution: Fixed > AMQP Federation demand tracking can overcount demand > > > Key: ARTEMIS-4626 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4626 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.32.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.33.0 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > The demand tracking for Address bindings and Queue consumers that controls > when a federation consumer is created and destroyed can race on start of > federation with consumers or bindings being added and removed and over count > the demand leading to the federation consumers not being shutdown when demand > on the local broker drops to zero. A better mechanism of tracking needs to > be added to make demand tracking idempotent for additions and removals of > local demand and the startup demand checks -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4626) AMQP Federation demand tracking can overcount demand
Timothy A. Bish created ARTEMIS-4626: Summary: AMQP Federation demand tracking can overcount demand Key: ARTEMIS-4626 URL: https://issues.apache.org/jira/browse/ARTEMIS-4626 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.32.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.33.0 The demand tracking for Address bindings and Queue consumers that controls when a federation consumer is created and destroyed can race on start of federation with consumers or bindings being added and removed and over count the demand leading to the federation consumers not being shutdown when demand on the local broker drops to zero. A better mechanism of tracking needs to be added to make demand tracking idempotent for additions and removals of local demand and the startup demand checks -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4575) Don't start all previous consumers when new consumer added
[ https://issues.apache.org/jira/browse/ARTEMIS-4575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4575. -- Fix Version/s: 2.32.0 Assignee: Timothy A. Bish Resolution: Fixed > Don't start all previous consumers when new consumer added > -- > > Key: ARTEMIS-4575 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4575 > Project: ActiveMQ Artemis > Issue Type: Improvement >Affects Versions: 2.31.2 >Reporter: Josh Byster >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.32.0 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > I was running a benchmark to add many consumers, and I see that the marginal > cost of adding a new consumer increases due to a linear-time iteration > through all the existing consumers with OpenWire. It becomes very slow to add > a new consumer when there are already 100k+ on a session, for example. We > have thousands of topics and we see a huge performance slowdown due to this. > More specifically, the stack trace: > {code:java} > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:73) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:352) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processAddConsumer(OpenWireConnection.java:1280) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.addConsumer(OpenWireConnection.java:1001) > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.start(AMQSession.java:257) > org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.start(ServerSessionImpl.java:1699) > org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.setStarted(ServerSessionImpl.java:2166) > {code} > {{Most of the time is spent in this method, starting consumers that have > previously been started:}} > {code:java} > private void setStarted(final boolean s) { >Set consumersClone = new HashSet<>(consumers.values()); >for (ServerConsumer consumer : consumersClone) { > consumer.setStarted(s); >} >started = s; > } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4575) Don't start all previous consumers when new consumer added
[ https://issues.apache.org/jira/browse/ARTEMIS-4575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4575: - Affects Version/s: 2.31.2 > Don't start all previous consumers when new consumer added > -- > > Key: ARTEMIS-4575 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4575 > Project: ActiveMQ Artemis > Issue Type: Improvement >Affects Versions: 2.31.2 >Reporter: Josh Byster >Priority: Minor > Time Spent: 1h 20m > Remaining Estimate: 0h > > I was running a benchmark to add many consumers, and I see that the marginal > cost of adding a new consumer increases due to a linear-time iteration > through all the existing consumers with OpenWire. It becomes very slow to add > a new consumer when there are already 100k+ on a session, for example. We > have thousands of topics and we see a huge performance slowdown due to this. > More specifically, the stack trace: > {code:java} > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:73) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:352) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processAddConsumer(OpenWireConnection.java:1280) > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.addConsumer(OpenWireConnection.java:1001) > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.start(AMQSession.java:257) > org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.start(ServerSessionImpl.java:1699) > org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.setStarted(ServerSessionImpl.java:2166) > {code} > {{Most of the time is spent in this method, starting consumers that have > previously been started:}} > {code:java} > private void setStarted(final boolean s) { >Set consumersClone = new HashSet<>(consumers.values()); >for (ServerConsumer consumer : consumersClone) { > consumer.setStarted(s); >} >started = s; > } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (ARTEMIS-4568) Support reloading AMQP broker federation configuration
[ https://issues.apache.org/jira/browse/ARTEMIS-4568?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4568. -- Resolution: Fixed > Support reloading AMQP broker federation configuration > -- > > Key: ARTEMIS-4568 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4568 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP, Configuration >Affects Versions: 2.31.2 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.32.0 > > Time Spent: 1h > Remaining Estimate: 0h > > Add support for reload of AMQP federation broker connection configuration > from XML and broker properties such that active federations are stopped and > updated with new configuration settings, and support add and remove of AMQP > federation broker connections. > This change will explicitly not reload broker connections that contain Mirror > configuration as that is not supported and could lead to breakages of > mirroring. Mirrors can be added if not present before but once added they > cannot be removed without a broker stop and restart. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4568) Support reloading AMQP broker federation configuration
[ https://issues.apache.org/jira/browse/ARTEMIS-4568?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4568: - Description: Add support for reload of AMQP federation broker connection configuration from XML and broker properties such that active federations are stopped and updated with new configuration settings, and support add and remove of AMQP federation broker connections. This change will explicitly not reload broker connections that contain Mirror configuration as that is not supported and could lead to breakages of mirroring. Mirrors can be added if not present before but once added they cannot be removed without a broker stop and restart. was:Add support for reload of AMQP federation broker connection configuration from XML and broker properties such that active federations are stopped and updated with new configuration settings, and support add and remove of AMQP federation broker connections. > Support reloading AMQP broker federation configuration > -- > > Key: ARTEMIS-4568 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4568 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP, Configuration >Affects Versions: 2.31.2 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Minor > Fix For: 2.32.0 > > Time Spent: 1h > Remaining Estimate: 0h > > Add support for reload of AMQP federation broker connection configuration > from XML and broker properties such that active federations are stopped and > updated with new configuration settings, and support add and remove of AMQP > federation broker connections. > This change will explicitly not reload broker connections that contain Mirror > configuration as that is not supported and could lead to breakages of > mirroring. Mirrors can be added if not present before but once added they > cannot be removed without a broker stop and restart. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4568) Support reloading AMQP broker federation configuration
Timothy A. Bish created ARTEMIS-4568: Summary: Support reloading AMQP broker federation configuration Key: ARTEMIS-4568 URL: https://issues.apache.org/jira/browse/ARTEMIS-4568 Project: ActiveMQ Artemis Issue Type: New Feature Components: AMQP, Configuration Affects Versions: 2.31.2 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.32.0 Add support for reload of AMQP federation broker connection configuration from XML and broker properties such that active federations are stopped and updated with new configuration settings, and support add and remove of AMQP federation broker connections. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (OPENWIRE-71) Align OpenWire project major version to protocol major version (12.0.0)
[ https://issues.apache.org/jira/browse/OPENWIRE-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17794373#comment-17794373 ] Timothy A. Bish commented on OPENWIRE-71: - The comparison doesn't really hold up though between a project that carries a protocol level codec and the implementation of the command (and Message) objects that are used in the server vs a spec jar that carries only an API with no implementation. Just use semantic versioning and leave yourself room to grow when things go sideways, which they always do. > Align OpenWire project major version to protocol major version (12.0.0) > --- > > Key: OPENWIRE-71 > URL: https://issues.apache.org/jira/browse/OPENWIRE-71 > Project: ActiveMQ OpenWire > Issue Type: Improvement >Reporter: Matt Pavlovich >Assignee: Matt Pavlovich >Priority: Major > > OpenWire v12 should be served by activemq-openwire-12.0.0.jar -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (OPENWIRE-71) Align OpenWire project major version to protocol major version (12.0.0)
[ https://issues.apache.org/jira/browse/OPENWIRE-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17794327#comment-17794327 ] Timothy A. Bish commented on OPENWIRE-71: - That doesn't make a ton of sense to me and in general typing release number to some ephemeral notion of what they imply generally leads to trouble. Sort of reminds me of projects that tried to tie the version of the JDK that a given release used to its version. Just used standard versioning so that the project can grow and change as needed and simply document what versions of Openwire are supported inside a given release. > Align OpenWire project major version to protocol major version (12.0.0) > --- > > Key: OPENWIRE-71 > URL: https://issues.apache.org/jira/browse/OPENWIRE-71 > Project: ActiveMQ OpenWire > Issue Type: Improvement >Reporter: Matt Pavlovich >Assignee: Matt Pavlovich >Priority: Major > > OpenWire v12 should be served by activemq-openwire-12.0.0.jar -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (OPENWIRE-69) Sequence ID for openwire properties is not correct in some types
[ https://issues.apache.org/jira/browse/OPENWIRE-69?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated OPENWIRE-69: Description: PartialCommand and ProducerAck seem to have identical sequence ID values for the property annotations which should be fixed, and maybe checked by the annotation processor since no two properties should have the same sequence. (was: PartialCommand and ProducerAck seem to have identical sequence ID values for the property annotations which should fixed, and maybe checked by the annotation processor since no two properties should have the same sequence.) > Sequence ID for openwire properties is not correct in some types > > > Key: OPENWIRE-69 > URL: https://issues.apache.org/jira/browse/OPENWIRE-69 > Project: ActiveMQ OpenWire > Issue Type: Bug >Reporter: Timothy A. Bish >Assignee: Christopher L. Shannon >Priority: Major > > PartialCommand and ProducerAck seem to have identical sequence ID values for > the property annotations which should be fixed, and maybe checked by the > annotation processor since no two properties should have the same sequence. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (OPENWIRE-69) Sequence ID for openwire properties is not correct in some types
Timothy A. Bish created OPENWIRE-69: --- Summary: Sequence ID for openwire properties is not correct in some types Key: OPENWIRE-69 URL: https://issues.apache.org/jira/browse/OPENWIRE-69 Project: ActiveMQ OpenWire Issue Type: Bug Reporter: Timothy A. Bish Assignee: Christopher L. Shannon PartialCommand and ProducerAck seem to have identical sequence ID values for the property annotations which should fixed, and maybe checked by the annotation processor since no two properties should have the same sequence. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4502) Allow core messages to cross AMQP broker connection links without conversion
[ https://issues.apache.org/jira/browse/ARTEMIS-4502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4502: - Summary: Allow core messages to cross AMQP broker connection links without conversion (was: Allow core message to cross AMQP broker connection links without conversion) > Allow core messages to cross AMQP broker connection links without conversion > > > Key: ARTEMIS-4502 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4502 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP >Affects Versions: 2.31.2 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.32.0 > > > Currently when message cross AMQP broker connection links used for mirroring > or federation they must be converted from Core to AMQP and then eventually > back if sent to a core consumer. This is worse for large messages as they > must be fully loaded into memory before converting to AMQP. > For AMQP Federation and broker mirroring we should use special encoding and > decoding to convey the core and core large messages across the wire without > conversion to avoid the overhead and caveats of that conversion. This > requires some not insignificant refactoring and use of custom message format > values to signal when an AMQP delivery is a core message so that the protocol > head can recreate the core message from the sent data. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4502) Allow core message to cross AMQP broker connection links without conversion
Timothy A. Bish created ARTEMIS-4502: Summary: Allow core message to cross AMQP broker connection links without conversion Key: ARTEMIS-4502 URL: https://issues.apache.org/jira/browse/ARTEMIS-4502 Project: ActiveMQ Artemis Issue Type: New Feature Components: AMQP Affects Versions: 2.31.2 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.32.0 Currently when message cross AMQP broker connection links used for mirroring or federation they must be converted from Core to AMQP and then eventually back if sent to a core consumer. This is worse for large messages as they must be fully loaded into memory before converting to AMQP. For AMQP Federation and broker mirroring we should use special encoding and decoding to convey the core and core large messages across the wire without conversion to avoid the overhead and caveats of that conversion. This requires some not insignificant refactoring and use of custom message format values to signal when an AMQP delivery is a core message so that the protocol head can recreate the core message from the sent data. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4470) Headers loss in message sent from AMQP producer to AMQP consumer
[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17779919#comment-17779919 ] Timothy A. Bish commented on ARTEMIS-4470: -- In general the broker APIs are not documented or not documented well, mostly you will need to take it upon yourself to figure out the implementation. The Message APIs should probably be updated to clarify that after all mutation operations are complete (regardless of which protocol underlies the message) a re-encode should be done to ensure the transmission is accurate. This API documentation should though be protocol agnostic however. You are welcome to open a PR for review. > Headers loss in message sent from AMQP producer to AMQP consumer > > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.31.0 >Reporter: Mohanavalli A >Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > -- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > -- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > -- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4470) Headers loss in message sent from AMQP producer to AMQP consumer
[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17779546#comment-17779546 ] Timothy A. Bish commented on ARTEMIS-4470: -- It's going to depend on what you change in the Message, in AMQP the standard properties, application-properties, and application-data (the body) are considered immutable, but you have decided in a plugin you will violate that and mutate them, therefore the message must be re-encoded as internally those bits are treated as a binary blob that would be sent unchanged as they are by spec immutable. So this is not a drawback of AMQP is a consequence of your choice to mutate the immutable message portion en route. http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#toc > Headers loss in message sent from AMQP producer to AMQP consumer > > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.31.0 >Reporter: Mohanavalli A >Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > -- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > -- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > -- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Closed] (ARTEMIS-4470) Headers loss in message sent from AMQP producer to AMQP consumer
[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4470. Resolution: Information Provided > Headers loss in message sent from AMQP producer to AMQP consumer > > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.31.0 >Reporter: Mohanavalli A >Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > -- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > -- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > -- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4470) Headers loss in message sent from AMQP producer to AMQP consumer
[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17779505#comment-17779505 ] Timothy A. Bish commented on ARTEMIS-4470: -- The method re-encodes the payload based on any changes and would not make sense to do on each add of a property as you would create a massive performance impact and increase GC overhead encoding and re-encoding with each property add or remove. > Headers loss in message sent from AMQP producer to AMQP consumer > > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.31.0 >Reporter: Mohanavalli A >Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > -- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > -- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > -- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4470) Headers loss in message sent from AMQP producer to AMQP consumer
[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17779135#comment-17779135 ] Timothy A. Bish commented on ARTEMIS-4470: -- Would need to see a reproducer to diagnose this fully but it sounds like your plugin is modifying the AMQP message and not calling: {code:java} message.reencode();{code} Without this the underlying encoded data will not be updated and the original buffers will be sent when the received message is routed to a consumer. > Headers loss in message sent from AMQP producer to AMQP consumer > > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker >Affects Versions: 2.31.0 >Reporter: Mohanavalli A >Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > -- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > -- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > -- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (AMQCPP-751) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/AMQCPP-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1762#comment-1762 ] Timothy A. Bish commented on AMQCPP-751: As this issue continues to be a client issue I am moving to the CMS client where a fix would need to be made to bring it into full compliance with other Openwire clients in how multibyte strings are encoded. > Non-UTF-8 messages containing special characters are not supported > -- > > Key: AMQCPP-751 > URL: https://issues.apache.org/jira/browse/AMQCPP-751 > Project: ActiveMQ C++ Client > Issue Type: Bug >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > org.apache.activemq.artemis.api.core.ActiveMQException: null > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at >
[jira] [Moved] (AMQCPP-751) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/AMQCPP-751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish moved ARTEMIS-4462 to AMQCPP-751: - Key: AMQCPP-751 (was: ARTEMIS-4462) Affects Version/s: (was: 2.30.0) Workflow: classic default workflow (was: jira) Project: ActiveMQ C++ Client (was: ActiveMQ Artemis) > Non-UTF-8 messages containing special characters are not supported > -- > > Key: AMQCPP-751 > URL: https://issues.apache.org/jira/browse/AMQCPP-751 > Project: ActiveMQ C++ Client > Issue Type: Bug >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > org.apache.activemq.artemis.api.core.ActiveMQException: null > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at >
[jira] [Commented] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1295#comment-1295 ] Timothy A. Bish commented on ARTEMIS-4462: -- As the person that wrote the majority of the CMS code I can tell that it does not do any encoding of multi-byte string as at the time it was written (2005) there was little to no cases where that was necessary and the C++ string types made it painful to do anyway. This is fine if you don't play any games and try to shoehorn in non-ASCII strings into the CMS TextMessage but since you are you will likely hit issues as broker side and Java client side, the strings are expected to be encoded an Modified UTF-8 if you are using multi byte characters. The ActiveMQ 5.x Broker itself will go out of its way not to decode the message payload that is stored in the byte sequence that comprises the body. It could do so if you used some broker plugins that triggered it so you are basically playing with fire by doing what you are doing. The solution here as Robbie has pointed out is to encode your strings into a BytesMessage which will pass untouched in Artemis as the conversion to the native Core protocol can just move those bytes into a Core message. You other option is to modify the CMS client with API and handling to encode wide character strings into modified UTF-8 payloads in the Openwire message body to ensure they are compatible with not only Artemis but the ActiveMQ 5.x broker as well. > Non-UTF-8 messages containing special characters are not supported > -- > > Key: ARTEMIS-4462 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4462 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.30.0 >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN >
[jira] [Closed] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4462. Resolution: Information Provided > Non-UTF-8 messages containing special characters are not supported > -- > > Key: ARTEMIS-4462 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4462 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.30.0 >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > org.apache.activemq.artemis.api.core.ActiveMQException: null > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) >
[jira] [Closed] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish closed ARTEMIS-4462. Resolution: Information Provided > Non-UTF-8 messages containing special characters are not supported > -- > > Key: ARTEMIS-4462 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4462 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.30.0 >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > org.apache.activemq.artemis.api.core.ActiveMQException: null > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) >
[jira] [Commented] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17776657#comment-17776657 ] Timothy A. Bish commented on ARTEMIS-4462: -- This is most likely the same issue as was reported AMQCPP-692 where the CMS client does not properly encode the strings and this causes the exception as the decoding will fail when Artemis is converting from Openwire native to the Artemis native CORE message. This comes down to a bug in the client that hasn't been fixed and since the client is no longer maintained it is unlikely to ever be fixed. I probably can sneak by in a 5.x broker so long as the message contents aren't decoded broker side but will likely throw an exception if that happened. > Non-UTF-8 messages containing special characters are not supported > -- > > Key: ARTEMIS-4462 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4462 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 2.30.0 >Reporter: Liviu Citu >Priority: Major > > When a text message non-UTF-8 (ISO-8859-15) containing special characters is > sent from ActiveMQ CPP client to Artemis, an exception > "java.io.UTFDataFormatException" is seen in Artemis server log. > Although the exception is thrown as a warning, the message gets rejected by > the server. > Below the Artemis server log: > > {noformat} > 2023-09-29 11:34:32,736 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > > java.io.UTFDataFormatException: null > at > org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) > ~[artemis-commons-2.30.0.jar:?] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) > ~[artemis-commons-2.30.0.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [?:?] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > [artemis-commons-2.30.0.jar:?] > 2023-09-29 11:34:32,753 WARN > [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] > Errors occurred during the buffering operation > org.apache.activemq.artemis.api.core.ActiveMQException: null > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) > ~[activemq-client-5.17.2.jar:5.17.2] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) > ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] > at > org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) >
[jira] [Updated] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4462: - Description: When a text message non-UTF-8 (ISO-8859-15) containing special characters is sent from ActiveMQ CPP client to Artemis, an exception "java.io.UTFDataFormatException" is seen in Artemis server log. Although the exception is thrown as a warning, the message gets rejected by the server. Below the Artemis server log: {noformat} 2023-09-29 11:34:32,736 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation java.io.UTFDataFormatException: null at org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) ~[activemq-client-5.17.2.jar:5.17.2] at org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) ~[activemq-client-5.17.2.jar:5.17.2] at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) ~[activemq-client-5.17.2.jar:5.17.2] at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.30.0.jar:?] 2023-09-29 11:34:32,753 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation org.apache.activemq.artemis.api.core.ActiveMQException: null at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) ~[activemq-client-5.17.2.jar:5.17.2] at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0] at org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) ~[artemis-commons-2.30.0.jar:?] at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.30.0.jar:?] 2023-09-29 11:34:32,755 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation java.io.UTFDataFormatException: null {noformat} Just create a small test program using
[jira] [Updated] (ARTEMIS-4462) Non-UTF-8 messages containing special characters are not supported
[ https://issues.apache.org/jira/browse/ARTEMIS-4462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4462: - Description: When a text message non-UTF-8 (ISO-8859-15) containing special characters is sent from ActiveMQ CPP client to Artemis, an exception "java.io.UTFDataFormatException" is seen in Artemis server log. Although the exception is thrown as a warning, the message gets rejected by the server. Below the Artemis server log: _2023-09-29 11:34:32,736 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation_ _java.io.UTFDataFormatException: null_ _at org.apache.activemq.util.MarshallingSupport.convertUTF8WithBuf(MarshallingSupport.java:386) ~[activemq-client-5.17.2.jar:5.17.2]_ _at org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:358) ~[activemq-client-5.17.2.jar:5.17.2]_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.writeTextType(OpenWireMessageConverter.java:233) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireMessageConverter.inbound(OpenWireMessageConverter.java:128) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:376) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1671) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) ~[activemq-client-5.17.2.jar:5.17.2]_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]_ _at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]_ _at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.30.0.jar:?]_ _2023-09-29 11:34:32,753 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation_ _org.apache.activemq.artemis.api.core.ActiveMQException: null_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1674) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769) ~[activemq-client-5.17.2.jar:5.17.2]_ _at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:369) ~[artemis-openwire-protocol-2.30.0.jar:2.30.0]_ _at org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) ~[artemis-commons-2.30.0.jar:?]_ _at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) ~[artemis-commons-2.30.0.jar:?]_ _at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]_ _at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]_ _at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.30.0.jar:?]_ _2023-09-29 11:34:32,755 WARN [org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection] Errors occurred during the buffering operation_
[jira] [Created] (ARTEMIS-4431) AMQP federated address consumer not applying hops annotation correctly
Timothy A. Bish created ARTEMIS-4431: Summary: AMQP federated address consumer not applying hops annotation correctly Key: ARTEMIS-4431 URL: https://issues.apache.org/jira/browse/ARTEMIS-4431 Project: ActiveMQ Artemis Issue Type: Bug Components: AMQP Affects Versions: 2.30.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.31.0 The AMQP federation address consumer omits a call to re-encode the message after updating the hops annotation that track how many federation links the message has traversed. This results in the message not carrying forward the correct annotation which breaks the max hops configuration. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4217) AMQ111005: Failed to convert message. Sending it to Dead Letter Address.
[ https://issues.apache.org/jira/browse/ARTEMIS-4217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764730#comment-17764730 ] Timothy A. Bish commented on ARTEMIS-4217: -- [~jbertram] Just as a note there is one case where this could happen and that is if the 'amqpMinLargeMessageSize' is set larger than the journal max file size (not sure the exact name) which causes a message that wasn't 'large' to become large but uses an AMQP to Core conversion as opposed to a simple convert from a "standard" AMQP message to a "large" AMQP message. This would result in the back to AMQP from Core case in cases where you might not be expecting it which could lead to a way to reproduce this if that is indeed how this is getting hit. > AMQ111005: Failed to convert message. Sending it to Dead Letter Address. > > > Key: ARTEMIS-4217 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4217 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.28.0 > Environment: Windows Server 2022 21H2 > openjdk 19.0.1 2022-10-18 > OpenJDK Runtime Environment (build 19.0.1+10-21) > OpenJDK 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing) >Reporter: daves >Priority: Major > Attachments: ArtemisConvertError.zip, > image-2023-06-16-15-59-25-689.png, image-2023-06-16-15-59-25-721.png > > > Some of the AMQP messages sent by my client never arrive at the consumer. In > the Artemis log I found the following exception: > {noformat} > 2023-03-23 18:06:58,084 WARN > [org.apache.activemq.artemis.protocol.amqp.logger] AMQ111005: Failed to > convert message. Sending it to Dead Letter Address. > org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.ConversionException: > java.nio.channels.ClosedChannelException > at > org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:318) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:79) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:561) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl.run(MessageReferenceImpl.java:131) > ~[artemis-server-2.28.0.jar:2.28.0] > at > io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > at > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > ~[artemis-commons-2.28.0.jar:?] Caused by: java.lang.RuntimeException: > java.nio.channels.ClosedChannelException > at > org.apache.activemq.artemis.core.persistence.impl.journal.LargeBody.getBodyBufferSize(LargeBody.java:293) > ~[artemis-server-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.core.persistence.impl.journal.LargeServerMessageImpl.getBodyBufferSize(LargeServerMessageImpl.java:263) > ~[artemis-server-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.getBodyLength(CoreBytesMessageWrapper.java:98) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.getBinaryFromMessageBody(CoreBytesMessageWrapper.java:68) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreBytesMessageWrapper.createAMQPSection(CoreBytesMessageWrapper.java:78) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > at > org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:106) > ~[artemis-amqp-protocol-2.28.0.jar:2.28.0] > ... 10 more >
[jira] [Resolved] (ARTEMIS-4419) Add broker federation support to the AMQP broker connection feature-set
[ https://issues.apache.org/jira/browse/ARTEMIS-4419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish resolved ARTEMIS-4419. -- Resolution: Fixed > Add broker federation support to the AMQP broker connection feature-set > > > Key: ARTEMIS-4419 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4419 > Project: ActiveMQ Artemis > Issue Type: New Feature > Components: AMQP >Affects Versions: 2.30.0 >Reporter: Timothy A. Bish >Assignee: Timothy A. Bish >Priority: Major > Fix For: 2.31.0 > > Time Spent: 10m > Remaining Estimate: 0h > > Add a feature element to the broker connection feature-set that allows for > broker federation over AMQP on outgoing AMQP broker connections. The feature > should support duplex federation across the same connection allowing > configuration of federation for local address and queues from a remote and > the reverse. The AMQP broker connection configuration should be updated to > allow configuring this feature in XML and using the broker properties > mechanism. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (ARTEMIS-4419) Add broker federation support to the AMQP broker connection feature-set
Timothy A. Bish created ARTEMIS-4419: Summary: Add broker federation support to the AMQP broker connection feature-set Key: ARTEMIS-4419 URL: https://issues.apache.org/jira/browse/ARTEMIS-4419 Project: ActiveMQ Artemis Issue Type: New Feature Components: AMQP Affects Versions: 2.30.0 Reporter: Timothy A. Bish Assignee: Timothy A. Bish Fix For: 2.31.0 Add a feature element to the broker connection feature-set that allows for broker federation over AMQP on outgoing AMQP broker connections. The feature should support duplex federation across the same connection allowing configuration of federation for local address and queues from a remote and the reverse. The AMQP broker connection configuration should be updated to allow configuring this feature in XML and using the broker properties mechanism. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Moved] (AMQNET-835) Document deserialization policy
[ https://issues.apache.org/jira/browse/AMQNET-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish moved OPENWIRE-65 to AMQNET-835: Key: AMQNET-835 (was: OPENWIRE-65) Project: ActiveMQ .Net (was: ActiveMQ OpenWire) > Document deserialization policy > --- > > Key: AMQNET-835 > URL: https://issues.apache.org/jira/browse/AMQNET-835 > Project: ActiveMQ .Net > Issue Type: Improvement >Reporter: Arnout Engelen >Priority: Major > > Unrestricted deserialization of untrusted data is dangerous and can lead to > remote code execution attacks. > To be able to safely deserialize untrusted data, the Apache NMS ActiveMQ .Net > client introduced deserialization policy options in version 2.1.0 > ([https://www.mail-archive.com/dev@activemq.apache.org/msg68832.html]). > It would be good to call out in the documentation that if you want to accept > untrusted data, you should use these options. > (I hope this is the correct Jira project to report this to, if not let me > know and I'll re-file it to the correct one :)) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4282) Sending Large ApplicationProperties section in a transactional session may break the server.
[ https://issues.apache.org/jira/browse/ARTEMIS-4282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4282: - Summary: Sending Large ApplicationProperties section in a transactional session may break the server. (was: Sending Large ApplicationProperty section in a transactional session may break the server.) > Sending Large ApplicationProperties section in a transactional session may > break the server. > > > Key: ARTEMIS-4282 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4282 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.28.0 >Reporter: Clebert Suconic >Priority: Major > Fix For: 2.29.0 > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (ARTEMIS-4282) Sending Large ApplicationProperty section in a transactional session may break the server.
[ https://issues.apache.org/jira/browse/ARTEMIS-4282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy A. Bish updated ARTEMIS-4282: - Summary: Sending Large ApplicationProperty section in a transactional session may break the server. (was: Sending Large Header in a transactional session may break the server.) > Sending Large ApplicationProperty section in a transactional session may > break the server. > -- > > Key: ARTEMIS-4282 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4282 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.28.0 >Reporter: Clebert Suconic >Priority: Major > Fix For: 2.29.0 > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (ARTEMIS-4264) MQTT v5 request-response with correlation ID
[ https://issues.apache.org/jira/browse/ARTEMIS-4264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17717774#comment-17717774 ] Timothy A. Bish commented on ARTEMIS-4264: -- You can look at Qpid JMS which handles some scenarios like this where the AMQP spec allows for several types including Binary and String along with UUID and ulong. Since I don't think MQTT defines what the correlation bytes mean you likely would just either carry them along untouched or encode them as a hex string depending on how core protocol carries the correlation ID value (you need some way to round trip them depending on how core manages them). > MQTT v5 request-response with correlation ID > > > Key: ARTEMIS-4264 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4264 > Project: ActiveMQ Artemis > Issue Type: Bug >Reporter: Daniel Martin >Priority: Major > > When sending messages from a JMS producer (ActiveMQ) to a MQTT consumer > (HiveMQ), using `setJMSReplyTo()` and `setJMSCorrelationID()` on the sending > side and `getResponseTopic()` and `getCorrelationData()` on the receiving > side, this information is not received by MQTT. > It seem to me that both protocols are pretty translatable into one another, > having pretty much the same concepts: > * > [https://activemq.apache.org/how-should-i-implement-request-response-with-jms] > * > [https://hivemq.com/blog/mqtt5-essentials-part9-request-response-pattern|https://www.hivemq.com/blog/mqtt5-essentials-part9-request-response-pattern] > I'd additionally ask: is MQTT version 5 truly supported? To what extent? -- This message was sent by Atlassian Jira (v8.20.10#820010)