[jira] [Updated] (ARTEMIS-1623) create an ActiveMQServerPlugin for logging various broker events
[ https://issues.apache.org/jira/browse/ARTEMIS-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy Bish updated ARTEMIS-1623: -- Description: create an implementation of ActiveMQServerPlugin for logging various broker events , consumer created, message delivered etc. This should be configurable to log only events user is interested in. Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. http://activemq.apache.org/logging-interceptor.html was: create an implementation of ActiveMQServerPlugin for logging various broker events , consumer created, message delivered etc. This should be configurable to log only events user is interested in. Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. > create an ActiveMQServerPlugin for logging various broker events > - > > Key: ARTEMIS-1623 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1623 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: Broker >Affects Versions: 2.4.0 >Reporter: Pat Fox >Priority: Minor > > create an implementation of ActiveMQServerPlugin for logging various broker > events , consumer created, message delivered etc. This should be configurable > to log only events user is interested in. > Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. > http://activemq.apache.org/logging-interceptor.html -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1623) create an ActiveMQServerPlugin for logging various broker events
[ https://issues.apache.org/jira/browse/ARTEMIS-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332750#comment-16332750 ] ASF GitHub Bot commented on ARTEMIS-1623: - GitHub user pgfox opened a pull request: https://github.com/apache/activemq-artemis/pull/1796 ARTEMIS-1623 ActiveMQServerPlugin impl for logging various broker events Similar concept to the ActiveMQ 5.x loggingBrokerPlugin. Commit includes: - plugin impl - tests using byteman for checking logging with AMQP, CORE and Openwire - doc on how to configure plugin For configuration details please see broker-plugins.md You can merge this pull request into a Git repository by running: $ git pull https://github.com/pgfox/activemq-artemis logging_brokerplugin Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1796.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1796 commit 941a87cd4843c7a2ec3fee117d702450dc4efb85 Author: Pat FoxDate: 2018-01-06T13:06:39Z ARTEMIS-1623 ActiveMQServerPlugin impl for logging various broker events Similiar concept to the ActiveMQ 5.x loggingBrokerPlugin > create an ActiveMQServerPlugin for logging various broker events > - > > Key: ARTEMIS-1623 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1623 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: Broker >Affects Versions: 2.4.0 >Reporter: Pat Fox >Priority: Minor > > create an implementation of ActiveMQServerPlugin for logging various broker > events , consumer created, message delivered etc. This should be configurable > to log only events user is interested in. > Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1623) create an ActiveMQServerPlugin for logging various broker events
[ https://issues.apache.org/jira/browse/ARTEMIS-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332735#comment-16332735 ] Pat Fox commented on ARTEMIS-1623: -- PR with suggested implementation to follow > create an ActiveMQServerPlugin for logging various broker events > - > > Key: ARTEMIS-1623 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1623 > Project: ActiveMQ Artemis > Issue Type: Improvement > Components: Broker >Affects Versions: 2.4.0 >Reporter: Pat Fox >Priority: Minor > > create an implementation of ActiveMQServerPlugin for logging various broker > events , consumer created, message delivered etc. This should be configurable > to log only events user is interested in. > Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (ARTEMIS-1623) create an ActiveMQServerPlugin for logging various broker events
Pat Fox created ARTEMIS-1623: Summary: create an ActiveMQServerPlugin for logging various broker events Key: ARTEMIS-1623 URL: https://issues.apache.org/jira/browse/ARTEMIS-1623 Project: ActiveMQ Artemis Issue Type: Improvement Components: Broker Affects Versions: 2.4.0 Reporter: Pat Fox create an implementation of ActiveMQServerPlugin for logging various broker events , consumer created, message delivered etc. This should be configurable to log only events user is interested in. Similar functionality to the ActiveMQ 5.x loggingBrokerPlugin. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (AMQNET-578) Add Apache license files and License Headers to all source and relevant files
Chris Morgan created AMQNET-578: --- Summary: Add Apache license files and License Headers to all source and relevant files Key: AMQNET-578 URL: https://issues.apache.org/jira/browse/AMQNET-578 Project: ActiveMQ .Net Issue Type: Sub-task Reporter: Chris Morgan The current code base for the new NMS AMQP client, see git repo [https://github.com/cjwmorgan-sol-sys/nms-amqp], does not include the proper apache license files or the apache license headers in the source and relevant other files. See [http://www.apache.org/legal/src-headers.html#headers|http://www.apache.org/legal/src-headers.html#headers,], for contents of files and headers. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1609) Fix serialization backwards compatibility for JMS destinations
[ https://issues.apache.org/jira/browse/ARTEMIS-1609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332474#comment-16332474 ] ASF GitHub Bot commented on ARTEMIS-1609: - Github user jmesnil commented on the issue: https://github.com/apache/activemq-artemis/pull/1795 While testing Artemis master branch, I found an issue with my previous commit. > Fix serialization backwards compatibility for JMS destinations > -- > > Key: ARTEMIS-1609 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1609 > Project: ActiveMQ Artemis > Issue Type: Bug >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Fix For: 2.5.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1609) Fix serialization backwards compatibility for JMS destinations
[ https://issues.apache.org/jira/browse/ARTEMIS-1609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332472#comment-16332472 ] ASF GitHub Bot commented on ARTEMIS-1609: - GitHub user jmesnil opened a pull request: https://github.com/apache/activemq-artemis/pull/1795 [ARTEMIS-1609] Add distinct name/address for JMS destinations Fix internalCreateTopic method: the topics are keyed by their core addresses, not their JMS names. You can merge this pull request into a Git repository by running: $ git pull https://github.com/jmesnil/activemq-artemis ARTEMIS-1609 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1795.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1795 commit d712441450a39e4240427bcda5c6eaccb234e192 Author: Jeff MesnilDate: 2018-01-19T15:01:51Z [ARTEMIS-1609] Add distinct name/address for JMS destinations Fix internalCreateTopic method: the topics are keyed by their core addresses, not their JMS names. > Fix serialization backwards compatibility for JMS destinations > -- > > Key: ARTEMIS-1609 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1609 > Project: ActiveMQ Artemis > Issue Type: Bug >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Fix For: 2.5.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (AMQNET-577) Update Build System
Chris Morgan created AMQNET-577: --- Summary: Update Build System Key: AMQNET-577 URL: https://issues.apache.org/jira/browse/AMQNET-577 Project: ActiveMQ .Net Issue Type: Sub-task Reporter: Chris Morgan The new NMS AMQP client, once committed, should be integrated into nightly builds and other build systems. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (AMQNET-576) Clean out old code base for NMS AMQP client provider
Chris Morgan created AMQNET-576: --- Summary: Clean out old code base for NMS AMQP client provider Key: AMQNET-576 URL: https://issues.apache.org/jira/browse/AMQNET-576 Project: ActiveMQ .Net Issue Type: Sub-task Reporter: Chris Morgan Remove old code base in, [https://github.com/apache/activemq-nms-amqp,] mirror. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1552) SASL GSSAPI IBM JDK - clients get authentication refused first time they connect to broker
[ https://issues.apache.org/jira/browse/ARTEMIS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332344#comment-16332344 ] ASF GitHub Bot commented on ARTEMIS-1552: - GitHub user gtully opened a pull request: https://github.com/apache/activemq-artemis/pull/1794 [ARTEMIS-1552] differenciate empty frame from no frame such that a nu… …ll response is accepted when valid You can merge this pull request into a Git repository by running: $ git pull https://github.com/gtully/activemq-artemis ARTEMIS-1552 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1794.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1794 commit b6612c950562f764e620f916b5d0e7751e8caa1c Author: gtullyDate: 2018-01-19T14:19:54Z [ARTEMIS-1552] differenciate empty frame from no frame such that a null response is accepted when valid > SASL GSSAPI IBM JDK - clients get authentication refused first time they > connect to broker > -- > > Key: ARTEMIS-1552 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1552 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.4.0 >Reporter: Gary Tully >Assignee: Gary Tully >Priority: Major > Fix For: 2.5.0 > > > {code} > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > GSSContextImpl.unwrap buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > Krb5Context.unwrap: buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > AES256WrapToken.decode: buffer : > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > 14:23:14.955 INFO > [org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL] Error on > sasl input: java.security.PrivilegedActionException: > javax.security.sasl.SaslException: Final handshake step failed [Caused by > org.ietf.jgss.GSSException, major code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0]: > java.security.PrivilegedActionException: javax.security.sasl.SaslException: > Final handshake step failed [Caused by org.ietf.jgss.GSSException, major > code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0] > at > java.security.AccessController.doPrivileged(AccessController.java:692) > [vm.jar:1.8.0] > at javax.security.auth.Subject.doAs(Subject.java:569) [rt.jar:1.8.0] > at > org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL.processSASL(GSSAPIServerSASL.java:77) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.checkSASL(ProtonHandler.java:315) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:274) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.flush(AMQPConnectionContext.java:178) > [] > at > org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.flush(ActiveMQProtonRemotingConnection.java:136) > [] > at > org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$FailureCheckAndFlushThread$1.run(RemotingServiceImpl.java:715) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) > [] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) > [] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) > [rt.jar:1.8.0] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [rt.jar:1.8.0] > at
[jira] [Created] (AMQNET-575) NMS AMQP Client Rework
Chris Morgan created AMQNET-575: --- Summary: NMS AMQP Client Rework Key: AMQNET-575 URL: https://issues.apache.org/jira/browse/AMQNET-575 Project: ActiveMQ .Net Issue Type: Task Components: AMQP, NMS Reporter: Chris Morgan This is a root Jira task to cover all work related to the proposal discussed in the thread, [http://activemq.2283324.n4.nabble.com/DISCUSS-Rework-NMS-AMQP-tc4721986.html#a4723793.] More specific work items should be created as subtasks of this issue. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1616) OpenWire improvements
[ https://issues.apache.org/jira/browse/ARTEMIS-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332334#comment-16332334 ] ASF GitHub Bot commented on ARTEMIS-1616: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1786 @michaelandrepearce TBH that's what I was thinking to do, but @clebertsuconic suggested that having all the commits but just 1 pr wasn't a bad thing at all: he has more experience than me and I trust him so I think there could be some very good reasons (like reverting just what could break something, if any?) to suggest me that...I will ask him better when he will be online anyway :+1: > OpenWire improvements > - > > Key: ARTEMIS-1616 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1616 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332332#comment-16332332 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user michaelandrepearce commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 @franz1981 looks good to me. > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > QueueImpl is backed by LinkedListImpl that allocates a Node for each message > reference: reducing the footprint will help GC and allow more precise memory > estimation to tune the heap. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1616) OpenWire improvements
[ https://issues.apache.org/jira/browse/ARTEMIS-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332329#comment-16332329 ] ASF GitHub Bot commented on ARTEMIS-1616: - Github user michaelandrepearce commented on the issue: https://github.com/apache/activemq-artemis/pull/1786 @franz1981 I assume you’ll squash commits once your ready right? > OpenWire improvements > - > > Key: ARTEMIS-1616 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1616 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1616) OpenWire improvements
[ https://issues.apache.org/jira/browse/ARTEMIS-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332326#comment-16332326 ] ASF GitHub Bot commented on ARTEMIS-1616: - Github user michaelandrepearce commented on a diff in the pull request: https://github.com/apache/activemq-artemis/pull/1786#discussion_r162637206 --- Diff: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java --- @@ -361,13 +371,68 @@ public int hashCode() { } } + private static SimpleString[] splitWithCachedString(final SimpleString simpleString, final int delim) { + final String str = simpleString.str; + final byte[] data = simpleString.data; + final int length = str.length(); + List all = null; + int index = 0; + while (index < length) { + final int delimIndex = str.indexOf(delim, index); + if (delimIndex == -1) { +//just need to add the last one +break; + } else { +all = addSimpleStringPart(all, data, index, delimIndex); + } + index = delimIndex + 1; + } + if (all == null) { + return new SimpleString[]{simpleString}; + } else { + // Adding the last one + all = addSimpleStringPart(all, data, index, length); + // Converting it to arrays + final SimpleString[] parts = new SimpleString[all.size()]; + return all.toArray(parts); + } + } + + private static List addSimpleStringPart(List all, + final byte[] data, + final int startIndex, + final int endIndex) { + final int expectedLength = endIndex - startIndex; + final SimpleString ss; + if (expectedLength == 0) { + ss = EMPTY; + } else { + //extract a byte[] copy from this + final int ssIndex = startIndex << 1; + final int delIndex = endIndex << 1; + final byte[] bytes = Arrays.copyOfRange(data, ssIndex, delIndex); + ss = new SimpleString(bytes); + } + // We will create the ArrayList lazily + if (all == null) { + // There will be at least 3 strings on this case (which is the actual common usecase) --- End diff -- Just to be clear I’m happy with this, as a PR, eg if you get all the bits you wanted done then don’t wait on this. It shouldn’t hold a merge. It’s just a question/query that was there before. Just a note that it be good to note what they are at some point. > OpenWire improvements > - > > Key: ARTEMIS-1616 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1616 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1616) OpenWire improvements
[ https://issues.apache.org/jira/browse/ARTEMIS-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332322#comment-16332322 ] ASF GitHub Bot commented on ARTEMIS-1616: - Github user michaelandrepearce commented on a diff in the pull request: https://github.com/apache/activemq-artemis/pull/1786#discussion_r162636748 --- Diff: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java --- @@ -361,13 +371,68 @@ public int hashCode() { } } + private static SimpleString[] splitWithCachedString(final SimpleString simpleString, final int delim) { --- End diff -- Ah :) nice, very subtle. > OpenWire improvements > - > > Key: ARTEMIS-1616 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1616 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy Bish updated ARTEMIS-1622: -- Environment: (was: QueueImpl is backed by LinkedListImpl that allocates a Node for each message reference: reducing the footprint will help GC and allow more precise memory estimation to tune the heap.) > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > QueueImpl is backed by LinkedListImpl that allocates a Node for each message > reference: reducing the footprint will help GC and allow more precise memory > estimation to tune the heap. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Timothy Bish updated ARTEMIS-1622: -- Description: QueueImpl is backed by LinkedListImpl that allocates a Node for each message reference: reducing the footprint will help GC and allow more precise memory estimation to tune the heap. > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > QueueImpl is backed by LinkedListImpl that allocates a Node for each message > reference: reducing the footprint will help GC and allow more precise memory > estimation to tune the heap. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Reopened] (ARTEMIS-1552) SASL GSSAPI IBM JDK - clients get authentication refused first time they connect to broker
[ https://issues.apache.org/jira/browse/ARTEMIS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gary Tully reopened ARTEMIS-1552: - this needs a revisit, it turns out an empty buffer can be ok at the end of the challenge/response cycle. I have come across this from the qpid cpp client. The periodic flush broker side was causing a sasl check with not data. It looks like the sasl check needs to be more determistic and not periodic. > SASL GSSAPI IBM JDK - clients get authentication refused first time they > connect to broker > -- > > Key: ARTEMIS-1552 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1552 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.4.0 >Reporter: Gary Tully >Assignee: Gary Tully >Priority: Major > Fix For: 2.5.0 > > > {code} > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > GSSContextImpl.unwrap buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > Krb5Context.unwrap: buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > AES256WrapToken.decode: buffer : > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > 14:23:14.955 INFO > [org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL] Error on > sasl input: java.security.PrivilegedActionException: > javax.security.sasl.SaslException: Final handshake step failed [Caused by > org.ietf.jgss.GSSException, major code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0]: > java.security.PrivilegedActionException: javax.security.sasl.SaslException: > Final handshake step failed [Caused by org.ietf.jgss.GSSException, major > code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0] > at > java.security.AccessController.doPrivileged(AccessController.java:692) > [vm.jar:1.8.0] > at javax.security.auth.Subject.doAs(Subject.java:569) [rt.jar:1.8.0] > at > org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL.processSASL(GSSAPIServerSASL.java:77) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.checkSASL(ProtonHandler.java:315) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:274) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.flush(AMQPConnectionContext.java:178) > [] > at > org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.flush(ActiveMQProtonRemotingConnection.java:136) > [] > at > org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$FailureCheckAndFlushThread$1.run(RemotingServiceImpl.java:715) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) > [] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) > [] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) > [rt.jar:1.8.0] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [rt.jar:1.8.0] > at java.lang.Thread.run(Thread.java:785) [vm.jar:2.6 (07-22-2017)]{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Comment Edited] (ARTEMIS-1552) SASL GSSAPI IBM JDK - clients get authentication refused first time they connect to broker
[ https://issues.apache.org/jira/browse/ARTEMIS-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332254#comment-16332254 ] Gary Tully edited comment on ARTEMIS-1552 at 1/19/18 1:33 PM: -- this needs a revisit, it turns out an empty buffer can be ok at the end of the challenge/response cycle. I have come across this from the qpid cpp client. The periodic flush broker side was causing a SASL check with not data. It looks like the SASL check needs to be more deterministic and not periodic. was (Author: gtully): this needs a revisit, it turns out an empty buffer can be ok at the end of the challenge/response cycle. I have come across this from the qpid cpp client. The periodic flush broker side was causing a sasl check with not data. It looks like the sasl check needs to be more determistic and not periodic. > SASL GSSAPI IBM JDK - clients get authentication refused first time they > connect to broker > -- > > Key: ARTEMIS-1552 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1552 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP >Affects Versions: 2.4.0 >Reporter: Gary Tully >Assignee: Gary Tully >Priority: Major > Fix For: 2.5.0 > > > {code} > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > GSSContextImpl.unwrap buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > Krb5Context.unwrap: buffer (len=0, offset=0): > [JGSS_DBG_WRAP] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > AES256WrapToken.decode: buffer : > [JGSS_DBG_UNMARSH] Thread-18 > (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@d7b0af0d) > > 14:23:14.955 INFO > [org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL] Error on > sasl input: java.security.PrivilegedActionException: > javax.security.sasl.SaslException: Final handshake step failed [Caused by > org.ietf.jgss.GSSException, major code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0]: > java.security.PrivilegedActionException: javax.security.sasl.SaslException: > Final handshake step failed [Caused by org.ietf.jgss.GSSException, major > code: 11, minor code: 0 > major string: General failure, unspecified at GSSAPI level > minor string: Error while decoding token: > java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0] > at > java.security.AccessController.doPrivileged(AccessController.java:692) > [vm.jar:1.8.0] > at javax.security.auth.Subject.doAs(Subject.java:569) [rt.jar:1.8.0] > at > org.apache.activemq.artemis.protocol.amqp.sasl.GSSAPIServerSASL.processSASL(GSSAPIServerSASL.java:77) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.checkSASL(ProtonHandler.java:315) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:274) > [] > at > org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.flush(AMQPConnectionContext.java:178) > [] > at > org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.flush(ActiveMQProtonRemotingConnection.java:136) > [] > at > org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$FailureCheckAndFlushThread$1.run(RemotingServiceImpl.java:715) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) > [] > at > org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) > [] > at > org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) > [] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) > [rt.jar:1.8.0] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > [rt.jar:1.8.0] > at java.lang.Thread.run(Thread.java:785) [vm.jar:2.6 (07-22-2017)]{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1498) [interop] Openwire internal headers should not be part of message properties
[ https://issues.apache.org/jira/browse/ARTEMIS-1498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332208#comment-16332208 ] ASF GitHub Bot commented on ARTEMIS-1498: - Github user RaiSaurabh commented on the issue: https://github.com/apache/activemq-artemis/pull/1793 Ok, @franz1981 I will wait for the merging. > [interop] Openwire internal headers should not be part of message properties > > > Key: ARTEMIS-1498 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1498 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: OpenWire > Environment: interoperability between Openwire -> AMQP/Core >Reporter: Michal Toth >Priority: Minor > > Sending an empty message from Openwire JMS client to AMQP or Core receiver > client shows extra "internal" headers (__HDR_*) in message properties. > They should not be there, as these are internal for broker in my opinion. > Openwire sender > {noformat} > $ java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 > --log-msgs interop --broker tcp://localhost:61616 --address queue_name_\$ > --count 1 --conn-username admin --conn-password admin > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': > 'dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1:1:1:1', > 'user-id':None, 'address': 'queue_name_$', 'subject': None, 'reply-to': None, > 'correlation-id': None, 'content-type': None, 'content-encoding': None, > 'absolute-expiry-time': 0, 'creation-time': 1509702974798, 'group-id': None, > 'group-sequence': 0, 'reply-to-group-id': None, 'properties': {}, 'content': > None, 'type': None} > {noformat} > AMQP/Core receiver > {noformat} > $ java -jar /var/dtests/node_data/clients/aac1.jar receiver --timeout 5 > --log-msgs interop --broker localhost:5672 --address queue_name_\$ --count 1 > --conn-username admin --conn-password admin > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01 > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01 > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': None, 'user-id': None, 'address': 'queue_name_$', > 'subject': None, 'reply-to': None, 'correlation-id': None, 'content-type': > None, 'content-encoding': None, 'absolute-expiry-time': 0, 'creation-time': > 1509702974798, 'group-id': None, 'group-sequence': 0, 'reply-to-group-id': > None, 'properties': {'__HDR_COMMAND_ID': 5, 'JMSXDeliveryCount': 1, > '__HDR_ARRIVAL': 0, '__HDR_MESSAGE_ID': > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01, > '__HDR_GROUP_SEQUENCE': 0, '__HDR_PRODUCER_ID': > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01, > '__HDR_DROPPABLE': False, '__HDR_BROKER_IN_TIME': 1509702974800}, 'content': > None} > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1616) OpenWire improvements
[ https://issues.apache.org/jira/browse/ARTEMIS-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332195#comment-16332195 ] ASF GitHub Bot commented on ARTEMIS-1616: - Github user franz1981 commented on a diff in the pull request: https://github.com/apache/activemq-artemis/pull/1786#discussion_r162610245 --- Diff: artemis-commons/src/main/java/org/apache/activemq/artemis/api/core/SimpleString.java --- @@ -361,13 +371,68 @@ public int hashCode() { } } + private static SimpleString[] splitWithCachedString(final SimpleString simpleString, final int delim) { + final String str = simpleString.str; + final byte[] data = simpleString.data; + final int length = str.length(); + List all = null; + int index = 0; + while (index < length) { + final int delimIndex = str.indexOf(delim, index); + if (delimIndex == -1) { +//just need to add the last one +break; + } else { +all = addSimpleStringPart(all, data, index, delimIndex); + } + index = delimIndex + 1; + } + if (all == null) { + return new SimpleString[]{simpleString}; + } else { + // Adding the last one + all = addSimpleStringPart(all, data, index, length); + // Converting it to arrays + final SimpleString[] parts = new SimpleString[all.size()]; + return all.toArray(parts); + } + } + + private static List addSimpleStringPart(List all, + final byte[] data, + final int startIndex, + final int endIndex) { + final int expectedLength = endIndex - startIndex; + final SimpleString ss; + if (expectedLength == 0) { + ss = EMPTY; + } else { + //extract a byte[] copy from this + final int ssIndex = startIndex << 1; + final int delIndex = endIndex << 1; + final byte[] bytes = Arrays.copyOfRange(data, ssIndex, delIndex); + ss = new SimpleString(bytes); + } + // We will create the ArrayList lazily + if (all == null) { + // There will be at least 3 strings on this case (which is the actual common usecase) --- End diff -- Difficult to say: I've found split to be used on AddressImpl mainly and openwire uses at least 3 parts addresses, while the other protocols seems to not rely heavily on split. Probably @clebert has a better knowledge of how he has chosen 2 instead, wdyt? > OpenWire improvements > - > > Key: ARTEMIS-1616 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1616 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1498) [interop] Openwire internal headers should not be part of message properties
[ https://issues.apache.org/jira/browse/ARTEMIS-1498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332192#comment-16332192 ] ASF GitHub Bot commented on ARTEMIS-1498: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1793 Please check this too https://github.com/apache/activemq-artemis/pull/1786 Probably will be easier to wait mine to be merged: the changes I've pushed are including some refactoring that will make this change to be easier, wdyt? > [interop] Openwire internal headers should not be part of message properties > > > Key: ARTEMIS-1498 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1498 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: OpenWire > Environment: interoperability between Openwire -> AMQP/Core >Reporter: Michal Toth >Priority: Minor > > Sending an empty message from Openwire JMS client to AMQP or Core receiver > client shows extra "internal" headers (__HDR_*) in message properties. > They should not be there, as these are internal for broker in my opinion. > Openwire sender > {noformat} > $ java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 > --log-msgs interop --broker tcp://localhost:61616 --address queue_name_\$ > --count 1 --conn-username admin --conn-password admin > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': > 'dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1:1:1:1', > 'user-id':None, 'address': 'queue_name_$', 'subject': None, 'reply-to': None, > 'correlation-id': None, 'content-type': None, 'content-encoding': None, > 'absolute-expiry-time': 0, 'creation-time': 1509702974798, 'group-id': None, > 'group-sequence': 0, 'reply-to-group-id': None, 'properties': {}, 'content': > None, 'type': None} > {noformat} > AMQP/Core receiver > {noformat} > $ java -jar /var/dtests/node_data/clients/aac1.jar receiver --timeout 5 > --log-msgs interop --broker localhost:5672 --address queue_name_\$ --count 1 > --conn-username admin --conn-password admin > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01 > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01 > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': None, 'user-id': None, 'address': 'queue_name_$', > 'subject': None, 'reply-to': None, 'correlation-id': None, 'content-type': > None, 'content-encoding': None, 'absolute-expiry-time': 0, 'creation-time': > 1509702974798, 'group-id': None, 'group-sequence': 0, 'reply-to-group-id': > None, 'properties': {'__HDR_COMMAND_ID': 5, 'JMSXDeliveryCount': 1, > '__HDR_ARRIVAL': 0, '__HDR_MESSAGE_ID': > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01, > '__HDR_GROUP_SEQUENCE': 0, '__HDR_PRODUCER_ID': > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01, > '__HDR_DROPPABLE': False, '__HDR_BROKER_IN_TIME': 1509702974800}, 'content': > None} > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1498) [interop] Openwire internal headers should not be part of message properties
[ https://issues.apache.org/jira/browse/ARTEMIS-1498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332184#comment-16332184 ] ASF GitHub Bot commented on ARTEMIS-1498: - GitHub user RaiSaurabh opened a pull request: https://github.com/apache/activemq-artemis/pull/1793 ARTEMIS-1498: Openwire internal headers should not be part of message You can merge this pull request into a Git repository by running: $ git pull https://github.com/RaiSaurabh/activemq-artemis openwire Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1793.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1793 commit 29c61ae7ae394ffa955228c98a0ccecc82318d1b Author: saurabhraiDate: 2018-01-19T12:19:05Z ARTEMIS-1498: Openwire internal headers should not be part of message > [interop] Openwire internal headers should not be part of message properties > > > Key: ARTEMIS-1498 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1498 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: OpenWire > Environment: interoperability between Openwire -> AMQP/Core >Reporter: Michal Toth >Priority: Minor > > Sending an empty message from Openwire JMS client to AMQP or Core receiver > client shows extra "internal" headers (__HDR_*) in message properties. > They should not be there, as these are internal for broker in my opinion. > Openwire sender > {noformat} > $ java -jar /var/dtests/node_data/clients/aoc7.jar sender --timeout 5 > --log-msgs interop --broker tcp://localhost:61616 --address queue_name_\$ > --count 1 --conn-username admin --conn-password admin > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': > 'dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1:1:1:1', > 'user-id':None, 'address': 'queue_name_$', 'subject': None, 'reply-to': None, > 'correlation-id': None, 'content-type': None, 'content-encoding': None, > 'absolute-expiry-time': 0, 'creation-time': 1509702974798, 'group-id': None, > 'group-sequence': 0, 'reply-to-group-id': None, 'properties': {}, 'content': > None, 'type': None} > {noformat} > AMQP/Core receiver > {noformat} > $ java -jar /var/dtests/node_data/clients/aac1.jar receiver --timeout 5 > --log-msgs interop --broker localhost:5672 --address queue_name_\$ --count 1 > --conn-username admin --conn-password admin > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01 > Unsupported object type org.apache.qpid.proton.amqp.Binary > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01 > {'durable': True, 'priority': 4, 'ttl': 0, 'first-acquirer': False, > 'delivery-count': 0, 'id': None, 'user-id': None, 'address': 'queue_name_$', > 'subject': None, 'reply-to': None, 'correlation-id': None, 'content-type': > None, 'content-encoding': None, 'absolute-expiry-time': 0, 'creation-time': > 1509702974798, 'group-id': None, 'group-sequence': 0, 'reply-to-group-id': > None, 'properties': {'__HDR_COMMAND_ID': 5, 'JMSXDeliveryCount': 1, > '__HDR_ARRIVAL': 0, '__HDR_MESSAGE_ID': > \x00\x00\x00Jn\x02\xae\x02{\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01\x00\x01, > '__HDR_GROUP_SEQUENCE': 0, '__HDR_PRODUCER_ID': > \x00\x00\x00F{\x01+\x00=ID:dhcp-145-96.lab.eng.brq.redhat.com-33646-1509702974536-1:1\x00\x01\x00\x01, > '__HDR_DROPPABLE': False, '__HDR_BROKER_IN_TIME': 1509702974800}, 'content': > None} > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332109#comment-16332109 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 @michaelandrepearce That's the best I could think to reduce the number of changes but honestly `MessageReferenceImpl` isn't *really* forced to use himself as a parameter > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332105#comment-16332105 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user michaelandrepearce commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 Makes sense and agreed anyone using the list wouldn’t be exposed to the node > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332088#comment-16332088 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 @michaelandrepearce The fact is that what Node contains is "enforced" by who use it and that is already generics (ie `LinkedListImpl`) and adding generic to `Node' won't add any value to who declare it (ie `PagedReferenceImpl`) indeed all the `Node` fields are hidden on purpose (for perf reasons mainly). I hope it will explain why I've chosen to "drop" this feature, but I agree that could be cool to have it :) > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332069#comment-16332069 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 @michaelandrepearce I will try to maintain the generics too if possible (not simple to fight with generics!) and about the cast it will be put already by the JVM with a thing called "uncommon trap" because generics live only at compile time and the JVM always prefers to be safer than sorry. > this could have been: PagedReferenceImpl extends LinkedListImpl.Node do you mean `PagedReferenceImpl extends LinkedListImpl.Node`? > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16332040#comment-16332040 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user michaelandrepearce commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 @franz1981 why did we need to loose the generics on Node? it now means theres a cast on get, and alot of un-needed change IMO. if it was due to the extension now made here: PagedReferenceImpl extends LinkedListImpl.Node this could have been: PagedReferenceImpl extends LinkedListImpl.Node and like wise in MessageReferenceImpl > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16331935#comment-16331935 ] ASF GitHub Bot commented on ARTEMIS-1622: - Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/1791 I've already run CI on it and it seems to be safe. Just few numbers to justify it... On master: ![image](https://user-images.githubusercontent.com/13125299/35141654-e8d5cbfc-fcfb-11e7-9762-6839d3cd67ca.png) While with this PR: ![image](https://user-images.githubusercontent.com/13125299/35141669-fd042466-fcfb-11e7-8ea1-b1f62983b38e.png) 800 MB vs 640 MB = 160 MB saved bytes Given the default broker settings for the JVM the math is: - each `Node` instance is 32 bytes = 12 bytes obj header + 16 bytes of fields + 4 bytes of padding to have 8 byte alignment - the original `MessageReferenceImpl` was 48 bytes, including a 12 bytes header - this PR `MessageReferenceImpl` is 64 bytes = 48 bytes (of the original) + 16 bytes (of `Node`) + 0 bytes of padding (64 is already 8 bytes aligned) We're saving 4 bytes of padding and 12 bytes of Object header from `Node` = 16 bytes for each message entry. If we have 10_000_000 messages we're saving 160 Megabytes. IMO there are few other checks to be performed and need anyone that knows how the original LinkedListImpl works, but the change is easy to be reverted: I've already checked that there aren't evident memory leaks, but any feedback is appreciated :+1: > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1621) Make producerWindowSize configurable on cluster connection bridges
[ https://issues.apache.org/jira/browse/ARTEMIS-1621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16331918#comment-16331918 ] ASF GitHub Bot commented on ARTEMIS-1621: - GitHub user gaohoward opened a pull request: https://github.com/apache/activemq-artemis/pull/1792 ARTEMIS-1621 Make producerWindowSize configurable on clusterconnection bridges The cluster connection bridge hard codes its producerWindowSize to -1 (meaning no producer flow control) even if you configure it otherwise. You can merge this pull request into a Git repository by running: $ git pull https://github.com/gaohoward/activemq-artemis gart1621 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1792.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1792 commit 33e990e2cd77d96c45863b39a438390f42f77a50 Author: Howard GaoDate: 2018-01-19T08:36:47Z ARTEMIS-1621 Make producerWindowSize configurable on clusterconnection bridges The cluster connection bridge hard codes its producerWindowSize to -1 (meaning no producer flow control) even if you configure it otherwise. > Make producerWindowSize configurable on cluster connection bridges > -- > > Key: ARTEMIS-1621 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1621 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Broker >Affects Versions: 2.4.0 > Environment: The cluster connection bridge hard codes its > producerWindowSize to -1 (meaning no producer flow control) even if you > configure it otherwise. >Reporter: Howard Gao >Assignee: Howard Gao >Priority: Major > Fix For: 2.5.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
[ https://issues.apache.org/jira/browse/ARTEMIS-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16331903#comment-16331903 ] ASF GitHub Bot commented on ARTEMIS-1622: - GitHub user franz1981 opened a pull request: https://github.com/apache/activemq-artemis/pull/1791 ARTEMIS-1622 Reduce memory footprint of QueueImpl LinkedListImpl is turned into an optionally intrusive linked list by allowing message references to extend Node You can merge this pull request into a Git repository by running: $ git pull https://github.com/franz1981/activemq-artemis node_gc Alternatively you can review and apply these changes as the patch at: https://github.com/apache/activemq-artemis/pull/1791.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1791 commit 77956f00c95a41ac22cdfbad6ffaf6606bf2488d Author: Francesco NigroDate: 2018-01-18T14:45:20Z ARTEMIS-1622 Reduce memory footprint of QueueImpl LinkedListImpl is turned into an optionally intrusive linked list by allowing message references to extend Node > Reduce memory footprint of QueueImpl > > > Key: ARTEMIS-1622 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 > Project: ActiveMQ Artemis > Issue Type: Improvement > Environment: QueueImpl is backed by LinkedListImpl that allocates a > Node for each message reference: reducing the footprint will help GC and > allow more precise memory estimation to tune the heap. >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (ARTEMIS-1622) Reduce memory footprint of QueueImpl
Francesco Nigro created ARTEMIS-1622: Summary: Reduce memory footprint of QueueImpl Key: ARTEMIS-1622 URL: https://issues.apache.org/jira/browse/ARTEMIS-1622 Project: ActiveMQ Artemis Issue Type: Improvement Environment: QueueImpl is backed by LinkedListImpl that allocates a Node for each message reference: reducing the footprint will help GC and allow more precise memory estimation to tune the heap. Reporter: Francesco Nigro Assignee: Francesco Nigro -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1593) RemotingConnectionImpl leaks
[ https://issues.apache.org/jira/browse/ARTEMIS-1593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1593. -- Resolution: Fixed > RemotingConnectionImpl leaks > > > Key: ARTEMIS-1593 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1593 > Project: ActiveMQ Artemis > Issue Type: Bug >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > RemoteConnectionImpl is not GC on client disconnects -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1509) Add support for JdbcNodeManager into the NettyFailoverTest
[ https://issues.apache.org/jira/browse/ARTEMIS-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1509. -- Resolution: Fixed > Add support for JdbcNodeManager into the NettyFailoverTest > --- > > Key: ARTEMIS-1509 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1509 > Project: ActiveMQ Artemis > Issue Type: Test >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1586) Reduce GC pressure due to String allocations on Core protocol
[ https://issues.apache.org/jira/browse/ARTEMIS-1586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1586. -- Resolution: Fixed > Reduce GC pressure due to String allocations on Core protocol > - > > Key: ARTEMIS-1586 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1586 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > > The core protocol produce a huge amount of StringValue/SimpleString instances > during CoreMessage decoding of SessionSendMessages. > Often these instances are the same during the lifetime of a client/server > connection: providing efficient interners would help to reduce the GC > pressure, increasing the broker capacity/scalability. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1471) Needs Bounds Checking on writes for MappedSequentialFile
[ https://issues.apache.org/jira/browse/ARTEMIS-1471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1471. -- Resolution: Fixed > Needs Bounds Checking on writes for MappedSequentialFile > > > Key: ARTEMIS-1471 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1471 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Broker >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Trivial > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1573) Improve UTF translation allowing zero copy
[ https://issues.apache.org/jira/browse/ARTEMIS-1573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1573. -- Resolution: Fixed > Improve UTF translation allowing zero copy > -- > > Key: ARTEMIS-1573 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1573 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Minor > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Resolved] (ARTEMIS-1615) Duplicate TypedProperties::checkCreateProperties
[ https://issues.apache.org/jira/browse/ARTEMIS-1615?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Francesco Nigro resolved ARTEMIS-1615. -- Resolution: Fixed > Duplicate TypedProperties::checkCreateProperties > > > Key: ARTEMIS-1615 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1615 > Project: ActiveMQ Artemis > Issue Type: Bug >Reporter: Francesco Nigro >Assignee: Francesco Nigro >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (ARTEMIS-1621) Make producerWindowSize configurable on cluster connection bridges
Howard Gao created ARTEMIS-1621: --- Summary: Make producerWindowSize configurable on cluster connection bridges Key: ARTEMIS-1621 URL: https://issues.apache.org/jira/browse/ARTEMIS-1621 Project: ActiveMQ Artemis Issue Type: Bug Components: Broker Affects Versions: 2.4.0 Environment: The cluster connection bridge hard codes its producerWindowSize to -1 (meaning no producer flow control) even if you configure it otherwise. Reporter: Howard Gao Assignee: Howard Gao Fix For: 2.5.0 -- This message was sent by Atlassian JIRA (v7.6.3#76005)