[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
michaelandrepearce commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1398636651 @jbertram if latest is working for you, then i can have to assume it would for us, original version didn't. Unfortunately i spent all my internal credits on this PR early on testing it. If you're sure that its good then i remove my -1, to a 0, and let you merge if you're happy. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
public void done() { + PostOfficeImpl.processReference(ref, false); + } + + @Override + public void onError(int errorCode, String errorMessage) { + } +}); + } } catch (Throwable e) { logger.warn(e.getMessage(), e); } } + private void syncDone(MessageReference reference) { + OperationContext ctx = reference.getProtocolData(OperationContext.class); + if (ctx != null) { + ctx.replicationDone(); + logger.debug("syncDone::replicationDone::ctx={},ref={}", ctx, reference); + } else { + Message message = reference.getMessage(); + if (message != null) { +ctx = (OperationContext) message.getUserContext(OperationContext.class); +if (ctx != null) { + ctx.replicationDone(); + logger.debug("syncDone::replicationDone message={}", message); Review Comment: extra space ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -239,37 +249,107 @@ public void sendMessage(Message message, RoutingContext context, List refs; + + if (tx != null) { +if (logger.isDebugEnabled()) { + logger.debug("Mirroring Message " + message + " with TX"); +} +MirrorSendOperation mirrorSendOperation = getSendOperation(tx); +refs = mirrorSendOperation.mirroredRefs; + } else { +refs = new LinkedList<>(); + } + refs.add(ref); + if (sync) { +OperationContext operContext = OperationContextImpl.getContext(server.getExecutorFactory()); +if (tx == null) { + // notice that if transactional, the context is lined up on beforeCommit as part of the transaction operation + operContext.replicationLineUp(); +} +if (logger.isDebugEnabled()) { Review Comment: What Tim said :) ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -303,8 +379,18 @@ private static Properties getProperties(Message message) { } } + private void postACKInternalMessage(MessageReference reference) { + if (logger.isDebugEnabled()) { Review Comment: Would say the same unless server.getIdentity() is somehow expensive ## artemis-server/src/main/resources/schema/artemis-configuration.xsd: ## @@ -2447,6 +2447,14 @@ + + + + If this is true, producers will be waiting a response from the mirror before the sync is finished. + This is false by default. Review Comment: Seems conflicted: default="true" "This is false by default." -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#issuecomment-1398607966 I just added the documentation. I will keep it as a separate commit. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-website] mattrpav merged pull request #98: [#822] Update jms2 status
mattrpav merged PR #98: URL: https://github.com/apache/activemq-website/pull/98 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] tabish121 commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
tabish121 commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082696611 ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -318,28 +395,181 @@ public void postAcknowledge(MessageReference ref, AckReason reason) throws Excep if ((ref.getQueue() != null && (ref.getQueue().isInternalQueue() || ref.getQueue().isMirrorController( { if (logger.isDebugEnabled()) { -logger.debug("{} rejecting postAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); +logger.debug("preAcknowledge::{} rejecting preAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); } return; } if (ignoreAddress(ref.getQueue().getAddress())) { if (logger.isTraceEnabled()) { -logger.trace("{} rejecting postAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); +logger.trace("preAcknowledge::{} rejecting preAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); } return; } - logger.trace("{} postAcknowledge {}", server, ref); + logger.trace("preAcknowledge::{} preAcknowledge {}", server, ref); String nodeID = idSupplier.getServerID(ref); // notice the brokerID will be null for any message generated on this broker. long internalID = idSupplier.getID(ref); - if (logger.isTraceEnabled()) { - logger.trace("{} sending ack message from server {} with messageID={}", server, nodeID, internalID); + Message messageCommand = createMessage(ref.getQueue().getAddress(), ref.getQueue().getName(), POST_ACK, nodeID, internalID, reason); + if (sync) { + OperationContext operationContext; + operationContext = OperationContextImpl.getContext(server.getExecutorFactory()); + messageCommand.setUserContext(OperationContext.class, operationContext); + if (tx == null) { +// notice that if transactional, the context is lined up on beforeCommit as part of the transaction operation +operationContext.replicationLineUp(); + } + } + + if (tx != null) { + MirrorACKOperation operation = getAckOperation(tx); + // notice the operationContext.replicationLineUp is done on beforeCommit as part of the TX + operation.addMessage(messageCommand, ref); + } else { + server.getStorageManager().afterStoreOperations(new IOCallback() { +@Override +public void done() { + try { + logger.debug("preAcknowledge::afterStoreOperation for messageReference {}", ref); + route(server, messageCommand); + } catch (Exception e) { + logger.warn(e.getMessage(), e); + } +} + +@Override +public void onError(int errorCode, String errorMessage) { +} + }); + } + } + + private MirrorACKOperation getAckOperation(Transaction tx) { + MirrorACKOperation ackOperation = (MirrorACKOperation) tx.getProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION); + if (ackOperation == null) { + logger.trace("getAckOperation::setting operation on transaction {}", tx); + ackOperation = new MirrorACKOperation(server); + tx.putProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION, ackOperation); + tx.afterStore(ackOperation); + } + + return ackOperation; + } + + private MirrorSendOperation getSendOperation(Transaction tx) { + if (tx == null) { + return null; + } + MirrorSendOperation sendOperation = (MirrorSendOperation) tx.getProperty(TransactionPropertyIndexes.MIRROR_SEND_OPERATION); + if (sendOperation == null) { + logger.trace("getSendOperation::setting operation on transaction {}", tx); + sendOperation = new MirrorSendOperation(); + tx.putProperty(TransactionPropertyIndexes.MIRROR_SEND_OPERATION, sendOperation); + tx.afterStore(sendOperation); + } + + return sendOperation; + } + + private static class MirrorACKOperation extends TransactionOperationAbstract { + + final ActiveMQServer server; + + final LinkedList refs = new LinkedList<>(); Review Comment: I'm not sure how that's an argument for using a LinkedList -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the speci
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
rvice. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082693359 ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -318,28 +395,181 @@ public void postAcknowledge(MessageReference ref, AckReason reason) throws Excep if ((ref.getQueue() != null && (ref.getQueue().isInternalQueue() || ref.getQueue().isMirrorController( { if (logger.isDebugEnabled()) { -logger.debug("{} rejecting postAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); +logger.debug("preAcknowledge::{} rejecting preAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); } return; } if (ignoreAddress(ref.getQueue().getAddress())) { if (logger.isTraceEnabled()) { -logger.trace("{} rejecting postAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); +logger.trace("preAcknowledge::{} rejecting preAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); } return; } - logger.trace("{} postAcknowledge {}", server, ref); + logger.trace("preAcknowledge::{} preAcknowledge {}", server, ref); String nodeID = idSupplier.getServerID(ref); // notice the brokerID will be null for any message generated on this broker. long internalID = idSupplier.getID(ref); - if (logger.isTraceEnabled()) { - logger.trace("{} sending ack message from server {} with messageID={}", server, nodeID, internalID); + Message messageCommand = createMessage(ref.getQueue().getAddress(), ref.getQueue().getName(), POST_ACK, nodeID, internalID, reason); + if (sync) { + OperationContext operationContext; + operationContext = OperationContextImpl.getContext(server.getExecutorFactory()); + messageCommand.setUserContext(OperationContext.class, operationContext); + if (tx == null) { +// notice that if transactional, the context is lined up on beforeCommit as part of the transaction operation +operationContext.replicationLineUp(); + } + } + + if (tx != null) { + MirrorACKOperation operation = getAckOperation(tx); + // notice the operationContext.replicationLineUp is done on beforeCommit as part of the TX + operation.addMessage(messageCommand, ref); + } else { + server.getStorageManager().afterStoreOperations(new IOCallback() { +@Override +public void done() { + try { + logger.debug("preAcknowledge::afterStoreOperation for messageReference {}", ref); + route(server, messageCommand); + } catch (Exception e) { + logger.warn(e.getMessage(), e); + } +} + +@Override +public void onError(int errorCode, String errorMessage) { +} + }); + } + } + + private MirrorACKOperation getAckOperation(Transaction tx) { + MirrorACKOperation ackOperation = (MirrorACKOperation) tx.getProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION); + if (ackOperation == null) { + logger.trace("getAckOperation::setting operation on transaction {}", tx); + ackOperation = new MirrorACKOperation(server); + tx.putProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION, ackOperation); + tx.afterStore(ackOperation); + } + + return ackOperation; + } + + private MirrorSendOperation getSendOperation(Transaction tx) { + if (tx == null) { + return null; + } + MirrorSendOperation sendOperation = (MirrorSendOperation) tx.getProperty(TransactionPropertyIndexes.MIRROR_SEND_OPERATION); + if (sendOperation == null) { + logger.trace("getSendOperation::setting operation on transaction {}", tx); + sendOperation = new MirrorSendOperation(); + tx.putProperty(TransactionPropertyIndexes.MIRROR_SEND_OPERATION, sendOperation); + tx.afterStore(sendOperation); + } + + return sendOperation; + } + + private static class MirrorACKOperation extends TransactionOperationAbstract { + + final ActiveMQServer server; + + final LinkedList refs = new LinkedList<>(); Review Comment: the number of elements is variable. It could be from one element to a large transaction. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to g
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082679948 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java: ## @@ -128,11 +133,17 @@ public void storeLineUp() { @Override public void replicationLineUp() { REPLICATION_LINEUP_UPDATER.incrementAndGet(this); + if (logger.isTraceEnabled()) { Review Comment: OperationContext is burning hot actually. I will place the gate back in this case. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
gemmellr commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082674555 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java: ## @@ -128,11 +133,17 @@ public void storeLineUp() { @Override public void replicationLineUp() { REPLICATION_LINEUP_UPDATER.incrementAndGet(this); + if (logger.isTraceEnabled()) { Review Comment: I decide based on how hot the path is. If its 'relatively occasional' I'll just let it box if it leaves things a lot nicer to read. If its very hot, I'll gate it. I have no idea in this case :) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] tabish121 commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
it Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] tabish121 commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
tabish121 commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082623955 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java: ## @@ -128,11 +133,17 @@ public void storeLineUp() { @Override public void replicationLineUp() { REPLICATION_LINEUP_UPDATER.incrementAndGet(this); + if (logger.isTraceEnabled()) { Review Comment: It probably will never be an actual performance issue but if you feel it adds value then that's fine. I tend to find the gate just make the code harder to read. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082596094 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java: ## @@ -128,11 +133,17 @@ public void storeLineUp() { @Override public void replicationLineUp() { REPLICATION_LINEUP_UPDATER.incrementAndGet(this); + if (logger.isTraceEnabled()) { Review Comment: I usually always use a gate when there's a native type (integer, long) to avoid a conversion to an Object. Do you think that's an overkill? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082573823 ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -239,37 +249,107 @@ public void sendMessage(Message message, RoutingContext context, List refs; + + if (tx != null) { +if (logger.isDebugEnabled()) { + logger.debug("Mirroring Message " + message + " with TX"); +} +MirrorSendOperation mirrorSendOperation = getSendOperation(tx); +refs = mirrorSendOperation.mirroredRefs; + } else { +refs = new LinkedList<>(); Review Comment: actually, I will just use the ref directly.. thanks a lot! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1082567041 ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -107,6 +115,7 @@ public boolean isStarted() { public AMQPMirrorControllerSource(ProtonProtocolManager protonProtocolManager, Queue snfQueue, ActiveMQServer server, AMQPMirrorBrokerConnectionElement replicaConfig, AMQPBrokerConnection brokerConnection) { super(server); + assert server != null; Review Comment: I will remove this.. I added this just to debug and forgot it.. thanks -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] brusdev merged pull request #4341: ARTEMIS-4138 Upgrade jackson version to 2.14.1
brusdev merged PR #4341: URL: https://github.com/apache/activemq-artemis/pull/4341 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] tabish121 commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
tabish121 commented on code in PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#discussion_r1081606585 ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -239,37 +249,107 @@ public void sendMessage(Message message, RoutingContext context, List refs; + + if (tx != null) { +if (logger.isDebugEnabled()) { + logger.debug("Mirroring Message " + message + " with TX"); +} +MirrorSendOperation mirrorSendOperation = getSendOperation(tx); +refs = mirrorSendOperation.mirroredRefs; + } else { +refs = new LinkedList<>(); + } + refs.add(ref); + if (sync) { +OperationContext operContext = OperationContextImpl.getContext(server.getExecutorFactory()); +if (tx == null) { + // notice that if transactional, the context is lined up on beforeCommit as part of the transaction operation + operContext.replicationLineUp(); +} +if (logger.isDebugEnabled()) { Review Comment: Gate check isn't needed here. ## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java: ## @@ -318,28 +404,185 @@ public void postAcknowledge(MessageReference ref, AckReason reason) throws Excep if ((ref.getQueue() != null && (ref.getQueue().isInternalQueue() || ref.getQueue().isMirrorController( { if (logger.isDebugEnabled()) { -logger.debug("{} rejecting postAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); +logger.debug("{} rejecting preAcknowledge queue={}, ref={} to avoid infinite loop with the mirror (reflection)", server, ref.getQueue().getName(), ref); } return; } if (ignoreAddress(ref.getQueue().getAddress())) { if (logger.isTraceEnabled()) { -logger.trace("{} rejecting postAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); +logger.trace("{} rejecting preAcknowledge queue={}, ref={}, queue address is excluded", server, ref.getQueue().getName(), ref); } return; } - logger.trace("{} postAcknowledge {}", server, ref); + logger.trace("{} preAcknowledge {}", server, ref); String nodeID = idSupplier.getServerID(ref); // notice the brokerID will be null for any message generated on this broker. long internalID = idSupplier.getID(ref); - if (logger.isTraceEnabled()) { - logger.trace("{} sending ack message from server {} with messageID={}", server, nodeID, internalID); + Message messageCommand = createMessage(ref.getQueue().getAddress(), ref.getQueue().getName(), POST_ACK, nodeID, internalID, reason); + if (sync) { + OperationContext operationContext; + operationContext = OperationContextImpl.getContext(server.getExecutorFactory()); + messageCommand.setUserContext(OperationContext.class, operationContext); + if (tx == null) { +// notice that if transactional, the context is lined up on beforeCommit as part of the transaction operation +operationContext.replicationLineUp(); + } + } + + if (tx != null) { + MirrorACKOperation operation = getAckOperation(tx); + // notice the operationContext.replicationLineUp is done on beforeCommit as part of the TX + operation.addMessage(messageCommand, ref); + } else { + server.getStorageManager().afterStoreOperations(new IOCallback() { +@Override +public void done() { + try { + logger.debug("Routing ack out of message {}", ref); + route(server, messageCommand); + } catch (Exception e) { + logger.warn(e.getMessage(), e); + } +} + +@Override +public void onError(int errorCode, String errorMessage) { +} + }); + } + } + + private MirrorACKOperation getAckOperation(Transaction tx) { + MirrorACKOperation ackOperation = (MirrorACKOperation) tx.getProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION); + if (ackOperation == null) { + logger.trace("getAckOperation::setting operation on transaction {}", tx); + ackOperation = new MirrorACKOperation(server); + tx.putProperty(TransactionPropertyIndexes.MIRROR_ACK_OPERATION, ackOperation); + tx.afterStore(ackOperation); + } + + return ackOperation; + } + + private MirrorSendOperation getSendOperation(Transaction tx) { + if (tx == null) { + return null; + } +
[GitHub] [activemq-artemis] jbertram closed pull request #4308: Update ActiveMQSession.java
jbertram closed pull request #4308: Update ActiveMQSession.java URL: https://github.com/apache/activemq-artemis/pull/4308 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] brusdev merged pull request #4332: ARTEMIS-4131 Support custom maven local repo for karaf tests
brusdev merged PR #4332: URL: https://github.com/apache/activemq-artemis/pull/4332 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] brusdev commented on pull request #4332: ARTEMIS-4131 Support custom maven local repo for ArtemisFeatureTest
brusdev commented on PR #4332: URL: https://github.com/apache/activemq-artemis/pull/4332#issuecomment-1396561600 I extended the same fix to karaf-client-integration-tests -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
jbertram commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1396363992 I performed an upgrade from 2.23.0 to the release I built from this PR and everything worked as expected. The `broker.xml` also validates fine with `xmllint`. @michaelandrepearce, what are your thoughts here? Any chance you could perform your own testing to confirm everything works as expected and if not provided specific details of what failed? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #4332: ARTEMIS-4131 Support custom maven local repo for ArtemisFeatureTest
clebertsuconic commented on PR #4332: URL: https://github.com/apache/activemq-artemis/pull/4332#issuecomment-1396327454 this is greek to me.. so I will just say LGTM! :) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
ssageProducer producer = session.createProducer(session.createQueue(getQueueName())); + + connection.start(); + + producer.setDeliveryMode(DeliveryMode.PERSISTENT); + + final String bodyMessage; + { +StringBuffer buffer = new StringBuffer(); +for (int i = 0; i < messageSize; i++) { + buffer.append("large Buffer..."); +} +bodyMessage = buffer.toString(); + } + + for (int i = 0; i < NUMBER_OF_MESSAGES; i++) { +if (logger.isTraceEnabled()) { + logger.trace("===>>> send message {}", i); +} +int theI = i; +sendPending.countUp(); +logger.trace("semSend.acquire"); +semSend.acquire(); +if (!transactional) { + pool.execute(() -> { + try { + if (logger.isTraceEnabled()) { +logger.trace("Entering non TX send with sendPending = " + sendPending.getCount()); + } + TextMessage message = session.createTextMessage(bodyMessage); + message.setStringProperty("strProperty", "" + theI); + producer.send(message); + sendPending.countDown(); + if (logger.isTraceEnabled()) { +logger.trace("leaving non TX send with sendPending = " + sendPending.getCount()); + } + } catch (Throwable e) { + logger.warn(e.getMessage(), e); + errors.incrementAndGet(); + } + }); +} else { + CountDownLatch sendDone = new CountDownLatch(1); + pool.execute(() -> { + try { + TextMessage message = session.createTextMessage(bodyMessage); + message.setStringProperty("strProperty", "" + theI); + producer.send(message); + } catch (Throwable e) { + errors.incrementAndGet(); + logger.warn(e.getMessage(), e); + } + sendDone.countDown(); + }); + + Wait.assertEquals(i, replicatedQueue::getMessageCount); + + Assert.assertTrue(sendDone.await(10, TimeUnit.SECONDS)); + + pool.execute(() -> { + try { + session.commit(); + sendPending.countDown(); + } catch (Throwable e) { + e.printStackTrace(); + } + }); +} + +Assert.assertFalse("Send epending not supposed to succeed", sendPending.await(10, TimeUnit.MILLISECONDS)); Review Comment: thanks! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] tabish121 commented on a diff in pull request #4338: ARTEMIS-4136 Mirrored sync replica
roducer producer = session.createProducer(session.createQueue(getQueueName())); + + connection.start(); + + producer.setDeliveryMode(DeliveryMode.PERSISTENT); + + final String bodyMessage; + { +StringBuffer buffer = new StringBuffer(); +for (int i = 0; i < messageSize; i++) { + buffer.append("large Buffer..."); +} +bodyMessage = buffer.toString(); + } + + for (int i = 0; i < NUMBER_OF_MESSAGES; i++) { +if (logger.isTraceEnabled()) { + logger.trace("===>>> send message {}", i); +} +int theI = i; +sendPending.countUp(); +logger.trace("semSend.acquire"); +semSend.acquire(); +if (!transactional) { + pool.execute(() -> { + try { + if (logger.isTraceEnabled()) { +logger.trace("Entering non TX send with sendPending = " + sendPending.getCount()); + } + TextMessage message = session.createTextMessage(bodyMessage); + message.setStringProperty("strProperty", "" + theI); + producer.send(message); + sendPending.countDown(); + if (logger.isTraceEnabled()) { +logger.trace("leaving non TX send with sendPending = " + sendPending.getCount()); + } + } catch (Throwable e) { + logger.warn(e.getMessage(), e); + errors.incrementAndGet(); + } + }); +} else { + CountDownLatch sendDone = new CountDownLatch(1); + pool.execute(() -> { + try { + TextMessage message = session.createTextMessage(bodyMessage); + message.setStringProperty("strProperty", "" + theI); + producer.send(message); + } catch (Throwable e) { + errors.incrementAndGet(); + logger.warn(e.getMessage(), e); + } + sendDone.countDown(); + }); + + Wait.assertEquals(i, replicatedQueue::getMessageCount); + + Assert.assertTrue(sendDone.await(10, TimeUnit.SECONDS)); + + pool.execute(() -> { + try { + session.commit(); + sendPending.countDown(); + } catch (Throwable e) { + e.printStackTrace(); + } + }); +} + +Assert.assertFalse("Send epending not supposed to succeed", sendPending.await(10, TimeUnit.MILLISECONDS)); Review Comment: probably meant: ""Send pending not supposed to succeed" -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] NikitaShupletsov commented on a diff in pull request #848: Feature/replica broker
NikitaShupletsov commented on code in PR #848: URL: https://github.com/apache/activemq/pull/848#discussion_r1080646856 ## activemq-broker/src/test/java/org/apache/activemq/replica/ReplicaCompactorTest.java: ## @@ -0,0 +1,166 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.replica; + +import org.apache.activemq.broker.Broker; +import org.apache.activemq.broker.ConnectionContext; +import org.apache.activemq.broker.region.MessageReference; +import org.apache.activemq.broker.region.PrefetchSubscription; +import org.apache.activemq.broker.region.Queue; +import org.apache.activemq.command.ActiveMQMessage; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.activemq.command.ConsumerInfo; +import org.apache.activemq.command.MessageAck; +import org.apache.activemq.command.MessageId; +import org.apache.activemq.store.MessageStore; +import org.junit.Before; +import org.junit.Test; +import org.mockito.ArgumentCaptor; + +import java.util.List; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ReplicaCompactorTest { + +private final ConnectionContext connectionContext = mock(ConnectionContext.class); +private final Broker broker = mock(Broker.class); +private final ReplicaReplicationQueueSupplier queueProvider = mock(ReplicaReplicationQueueSupplier.class); +private final MessageStore messageStore = mock(MessageStore.class); + +private final ActiveMQQueue intermediateQueueDestination = new ActiveMQQueue(ReplicaSupport.INTERMEDIATE_REPLICATION_QUEUE_NAME); +private final Queue intermediateQueue = mock(Queue.class); + +private ReplicaCompactor replicaCompactor; + +@Before +public void setUp() throws Exception { +ConnectionContext adminConnectionContext = mock(ConnectionContext.class); +when(adminConnectionContext.copy()).thenReturn(connectionContext); + when(broker.getAdminConnectionContext()).thenReturn(adminConnectionContext); + + when(queueProvider.getIntermediateQueue()).thenReturn(intermediateQueueDestination); + when(broker.getDestinations(intermediateQueueDestination)).thenReturn(Set.of(intermediateQueue)); +when(intermediateQueue.getMessageStore()).thenReturn(messageStore); + +ConsumerInfo consumerInfo = new ConsumerInfo(); +PrefetchSubscription originalSubscription = mock(PrefetchSubscription.class); +when(originalSubscription.getConsumerInfo()).thenReturn(consumerInfo); + +replicaCompactor = new ReplicaCompactor(broker, connectionContext, queueProvider, originalSubscription); +} + +@Test +public void compactWhenSendAndAck() throws Exception { +MessageId messageId1 = new MessageId("1:0:0:1"); +MessageId messageId2 = new MessageId("1:0:0:2"); +MessageId messageId3 = new MessageId("1:0:0:3"); + +String messageIdToAck = "2:1"; + +ActiveMQMessage message1 = new ActiveMQMessage(); +message1.setMessageId(messageId1); + message1.setBooleanProperty(ReplicaSupport.IS_ORIGINAL_MESSAGE_SENT_TO_QUEUE_PROPERTY, true); +message1.setStringProperty(ReplicaEventType.EVENT_TYPE_PROPERTY, ReplicaEventType.MESSAGE_SEND.toString()); +message1.setStringProperty(ReplicaSupport.MESSAGE_ID_PROPERTY, messageIdToAck); Review Comment: `ReplicaSupport.MESSAGE_ID_PROPERTY` is used for the selector https://github.com/apache/activemq/pull/848/files/ec191dae604c3e51230ac88da8fb383dcd27d168#diff-eb08a6397c7e082f3d1aab53880eeb062d837f235dc870f910819a5b2d63c30aR102 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic commented on PR #4338: URL: https://github.com/apache/activemq-artemis/pull/4338#issuecomment-1396180107 hmmm... I need to change the docs. I will do this on Friday... (It could be a separate PR fro this one). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic opened a new pull request, #4338: ARTEMIS-4136 Mirrored sync replica
clebertsuconic opened a new pull request, #4338: URL: https://github.com/apache/activemq-artemis/pull/4338 I am adding an option sync=true or false on mirror. if sync, any client blocking operation will wait a roundtrip to the mirror acting like a sync replica. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4310: ARTEMIS-4113 Fix NPE for backup brokers with connection routers
jbertram commented on PR #4310: URL: https://github.com/apache/activemq-artemis/pull/4310#issuecomment-1396078375 @brusdev, any news on this one? Do you want this in 2.28.0? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4337: ARTEMIS-3819 do not trip on empty values in web-console
jbertram merged PR #4337: URL: https://github.com/apache/activemq-artemis/pull/4337 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] erwindon opened a new pull request, #4337: do not trip on empty values in web-console
erwindon opened a new pull request, #4337: URL: https://github.com/apache/activemq-artemis/pull/4337 See https://issues.apache.org/jira/browse/ARTEMIS-3819 fields 'validateduser' and 'original queue' may not have a value. this PR just makes sure that the JS code does not care -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
jbertram commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1387349068 I created a release from this PR and copied it to an air-gapped system. I created an instance of the broker and then modified that instance's `broker.xml` to use an `xinclude`. Then I ran this from Artemis' home directory: ``` $ xmllint --noout --xinclude --schema schema/artemis-server.xsd /path/to/etc/broker.xml /path/to/etc/broker.xml validates ``` As you can see, the validation succeeded. I will try performing an upgrade next. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] srajmane commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
srajmane commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1387054191 @mattrpav Yes, l will check this issue with nodes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on pull request #4181: ARTEMIS-2876 Add JUnit5 Extensions for testing
gemmellr commented on PR #4181: URL: https://github.com/apache/activemq-artemis/pull/4181#issuecomment-1386809304 There are, sometime soon, per https://lists.apache.org/thread/mtv3dxcj1qhkxz3r88tbj4918rzdxwqm -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] cpiepel commented on pull request #4181: ARTEMIS-2876 Add JUnit5 Extensions for testing
cpiepel commented on PR #4181: URL: https://github.com/apache/activemq-artemis/pull/4181#issuecomment-1386781369 @jbertram are there any plans to Release the 2.28.0 Version ? Would be great, because we are migration our projects to JUNIT5 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4336: ARTEMIS-4135 mitigate NPE when browsing
jbertram merged PR #4336: URL: https://github.com/apache/activemq-artemis/pull/4336 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4335: ARTEMIS-4133 msg w/null prop value can't be consumed via STOMP
jbertram merged PR #4335: URL: https://github.com/apache/activemq-artemis/pull/4335 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4333: ARTEMIS-4129 Add max-saved-replicated-journals-size parameter to primary and replicated policy configuration
jbertram merged PR #4333: URL: https://github.com/apache/activemq-artemis/pull/4333 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] asfgit merged pull request #4334: ARTEMIS-4134: list the version in initial boostrap startup log message
asfgit merged PR #4334: URL: https://github.com/apache/activemq-artemis/pull/4334 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4320: ARTEMIS-3790 Support masked JMS credentials
jbertram merged PR #4320: URL: https://github.com/apache/activemq-artemis/pull/4320 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4320: ARTEMIS-3790 Support masked JMS credentials
jbertram commented on PR #4320: URL: https://github.com/apache/activemq-artemis/pull/4320#issuecomment-1385688631 @ryan-highley, nice work! Thanks a lot. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1385660112 A few tests failed with 'port already in use' issue ``` Test Name | Duration | Age -- | -- | -- org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-demo.xml] | 1.7 sec | 1 org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-dynamic-network-broker1.xml] | 1 sec | 1 org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-jdbc-performance.xml] | 1.1 sec | 1 org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-throughput.xml] | 1 sec | 1 org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-security.xml] | 1 sec | 1 org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-specjms.xml] | 1 sec | 1 [Test Name](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/#) [Duration](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/#) [Age](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/#) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-demo.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_demo_xml_/) 1.7 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-dynamic-network-broker1.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_dynamic_network_broker1_xml_/) 1 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-jdbc-performance.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_jdbc_performance_xml_/) 1.1 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-throughput.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_throughput_xml_/) 1 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-security.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_security_xml_/) 1 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) Â [org.apache.activemq.config.BrokerXmlConfigStartTest.testStartBrokerUsingXmlConfig1[activemq-specjms.xml]](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/testReport/org.apache.activemq.config/BrokerXmlConfigStartTest/testStartBrokerUsingXmlConfig1_activemq_specjms_xml_/) 1 sec [1](https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231/) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr opened a new pull request, #4334: ARTEMIS-4134: list the version in initial boostrap startup log message
gemmellr opened a new pull request, #4334: URL: https://github.com/apache/activemq-artemis/pull/4334 List the version in initial bootstrap log message, make it available earlier and thus more obviously/reliably than the message after startup. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] ryan-highley commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
ryan-highley commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1385612108 I removed the XInclude.xsd file and references in the updated schema definitions some time ago. Hopefully that appeases xmllint. Was never able to reproduce any issues with air-gapped hosts, but without a better idea of what steps caused the issues in the first place, I won't know how to address them. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mjanczykowski opened a new pull request, #957: [AMQ-9199] Fixed race condition in creating store directory
mjanczykowski opened a new pull request, #957: URL: https://github.com/apache/activemq/pull/957 A store directory is created by `MessageDatabase.getPageFile()` which is called in two cases: 1. `KahaDBStore.start()` when creating a queue 2. `KahaDBStore.size()` which is performed when sending any persistent message If both methods are called concurrently it's possible to get an IOException thrown from the `IOHelper.mkdirs()` method. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] NikitaShupletsov commented on a diff in pull request #953: [AMQ-8354] Add helper methods needed for replica plugin.
NikitaShupletsov commented on code in PR #953: URL: https://github.com/apache/activemq/pull/953#discussion_r1071640842 ## activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java: ## @@ -2387,8 +2495,8 @@ private QueueMessageReference getMatchingMessage(MessageDispatchNotification mes messages.reset(); while (messages.hasNext()) { MessageReference node = messages.next(); -messages.remove(); Review Comment: I am not sure why. this method is used to "deliver" a specific message by id to a specific consumer. we still want to have the access to all other messages. in case we want to "deliver" them too, or in case there is a real consumer -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1384350293 @srajmane we do have a new setting that re-runs failed unit tests 3 times. My suspicion is that Apache's s390x's are super busy (and they don't have a lot of them) so we probably should not expect regular 'green' runs. I kicked off a new s390x pipeline run here: https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/job/main/231 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] srajmane commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
srajmane commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1384149906 > I'm going to go ahead and merge this. There is no day-to-day impact, this simply allows us to manually select a s390x build. > > @srajmane there are still some test failures. Not sure if it is due to a s390x-specific bug or if it is due to the s390x build server being super busy. @mattrpav Thank you for the update. I tried failed test cases locally. Looks like the tests were flaky which passed after retries. Could you please re-trigger the build for s390x? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] iliya-gr opened a new pull request, #4333: ARTEMIS-4129 Add max-saved-replicated-journals-size parameter to primary and replicated policy configuration
iliya-gr opened a new pull request, #4333: URL: https://github.com/apache/activemq-artemis/pull/4333 Allow override default max-saved-replicated-journals-size value when the server is configured as primary or replicated. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #937: Added destination field to Job
mattrpav commented on PR #937: URL: https://github.com/apache/activemq/pull/937#issuecomment-1382905946 @shikhar97gupta these changes are looking good! One final request -- move the 'with destination name' to a separate method. This will ensure that users that use the existing method do not have any performance impact when viewing scheduled jobs. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav merged pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav merged PR #956: URL: https://github.com/apache/activemq/pull/956 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1382905530 I'm going to go ahead and merge this. There is no day-to-day impact, this simply allows us to manually select a s390x build. @srajmane there are still some test failures. Not sure if it is due to a s390x-specific bug or if it is due to the s390x build server being super busy. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] asfgit closed pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
asfgit closed pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics URL: https://github.com/apache/activemq-artemis/pull/4183 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
clebertsuconic commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1070031383 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java: ## @@ -174,6 +184,8 @@ public class ServerSessionPacketHandler implements ChannelHandler { private final Pool poolNullResponseV2; + private final Map producers = new IntObjectHashMap<>(); Review Comment: This should have been declared as: private final IntObjectHashMap producers = new IntObjectHashMap<>(); if you keep the Map declaration you will be using boxing every time an integer is used. not a big deal though.. I'm amending myself during merge.. just a FYI. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1382064743 Notes: 1. Some tests failing 2. Total execution time exceeded max limit (20 hrs) ref: https://ci-builds.apache.org/job/ActiveMQ/job/ActiveMQ/view/change-requests/job/PR-956/3/ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
gemmellr commented on PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#issuecomment-1382042711 LGTM now (I ran the PR builds again on my fork, passed) but needs another rebase. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic merged pull request #4315: This PR has a few minor changes that I am testing altogether before merging.
clebertsuconic merged PR #4315: URL: https://github.com/apache/activemq-artemis/pull/4315 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
gemmellr commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1069126173 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java: ## @@ -1513,7 +1524,139 @@ public String getConnectionRemoteAddress() { return this.session.getRemotingConnection().getTransportConnection().getRemoteAddress(); } + @Override + public int getMessagesInTransitSize() { + return metrics.getMessagesInTransitSize(); + } + + @Override + public int getMessagesInTransit() { + return deliveringRefs.size(); + } + + @Override + public long getLastDeliveredTime() { + return metrics.getLastDeliveredTime(); + } + + @Override + public long getLastAcknowledgedTime() { + return metrics.getLastAcknowledgedTime(); + } + + @Override + public long getMessagesAcknowledged() { + return metrics.getMessagesAcknowledged(); + } + + @Override + public int getMessagesDeliveredSize() { + return metrics.getMessagesDeliveredSize(); + } + + @Override + public int getMessagesDelivered() { + return metrics.getMessagesDelivered(); + } + + @Override + public int getMessagesAcknowledgedAwaitingCommit() { + return metrics.getMessagesAcknowledgedAwaitingCommit(); + } + public SessionCallback getCallback() { return callback; } + + static class ServerConsumerMetrics extends TransactionOperationAbstract { + + /** + * Since messages can be delivered (incremented) and acknowledged (decremented) at the same time we have to protect + * the encode size and make it atomic. The other fields are ok since they are only accessed from a single thread. + */ + private static final AtomicIntegerFieldUpdater messagesInTransitSizeUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesInTransitSize"); + + private volatile int messagesInTransitSize = 0; + + private static final AtomicIntegerFieldUpdater messagesAcknowledgedAwaitingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private volatile long lastDeliveredTime = 0; + + private volatile long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; Review Comment: If it is clear that the variable updates are thread-safe (appears so in this case, 2 callers that both use 'lock') and are unlikely to become unsafe, then you dont need a FieldUpdater. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
michaelandrepearce commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1381456192 --valid is for DTD validation as such it expects DTD's to be given. were doing XSD which you're correctly passing schema, remove --valid -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] michaelandrepearce commented on a diff in pull request #953: [AMQ-8354] Add helper methods needed for replica plugin.
michaelandrepearce commented on code in PR #953: URL: https://github.com/apache/activemq/pull/953#discussion_r1069058950 ## activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java: ## @@ -2387,8 +2495,8 @@ private QueueMessageReference getMatchingMessage(MessageDispatchNotification mes messages.reset(); while (messages.hasNext()) { MessageReference node = messages.next(); -messages.remove(); Review Comment: And? That's now unneeded change in behaviour -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] michaelandrepearce commented on a diff in pull request #953: [AMQ-8354] Add helper methods needed for replica plugin.
michaelandrepearce commented on code in PR #953: URL: https://github.com/apache/activemq/pull/953#discussion_r1069058454 ## activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java: ## @@ -54,7 +54,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class SchedulerBroker extends BrokerFilter implements JobListener { +public class SchedulerBroker extends MutableBrokerFilter implements JobListener { Review Comment: Is sync and see docs of the class you're changing too. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] andytaylor commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
andytaylor commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1069057434 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java: ## @@ -1513,7 +1524,139 @@ public String getConnectionRemoteAddress() { return this.session.getRemotingConnection().getTransportConnection().getRemoteAddress(); } + @Override + public int getMessagesInTransitSize() { + return metrics.getMessagesInTransitSize(); + } + + @Override + public int getMessagesInTransit() { + return deliveringRefs.size(); + } + + @Override + public long getLastDeliveredTime() { + return metrics.getLastDeliveredTime(); + } + + @Override + public long getLastAcknowledgedTime() { + return metrics.getLastAcknowledgedTime(); + } + + @Override + public long getMessagesAcknowledged() { + return metrics.getMessagesAcknowledged(); + } + + @Override + public int getMessagesDeliveredSize() { + return metrics.getMessagesDeliveredSize(); + } + + @Override + public int getMessagesDelivered() { + return metrics.getMessagesDelivered(); + } + + @Override + public int getMessagesAcknowledgedAwaitingCommit() { + return metrics.getMessagesAcknowledgedAwaitingCommit(); + } + public SessionCallback getCallback() { return callback; } + + static class ServerConsumerMetrics extends TransactionOperationAbstract { + + /** + * Since messages can be delivered (incremented) and acknowledged (decremented) at the same time we have to protect + * the encode size and make it atomic. The other fields are ok since they are only accessed from a single thread. + */ + private static final AtomicIntegerFieldUpdater messagesInTransitSizeUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesInTransitSize"); + + private volatile int messagesInTransitSize = 0; + + private static final AtomicIntegerFieldUpdater messagesAcknowledgedAwaitingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private volatile long lastDeliveredTime = 0; + + private volatile long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; Review Comment: and also FieldUpdaters? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] dependabot[bot] opened a new pull request, #4331: Bump keycloak-core from 19.0.2 to 20.0.3 in /examples/features/standard/security-keycloak
dependabot[bot] opened a new pull request, #4331: URL: https://github.com/apache/activemq-artemis/pull/4331 Bumps [keycloak-core](https://github.com/keycloak/keycloak) from 19.0.2 to 20.0.3. Commits https://github.com/keycloak/keycloak/commit/d37bc90967a7fdc751df5ff40f4dc3143f212ce8";>d37bc90 Set version to 20.0.3 https://github.com/keycloak/keycloak/commit/02d113ab71de67817890b655ae792580a4fb8ee2";>02d113a Set OkHttp 4.10.0 in parent pom (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16383";>#16383) (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16414";>#16414) https://github.com/keycloak/keycloak/commit/23207f81cf2dd05bff14cec45900fad9e6d8fabf";>23207f8 Wrong auth session id being used when validating auth session id cookies (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16";>#16... https://github.com/keycloak/keycloak/commit/6572a64a8bd0da09f9c14537a7fd9997b337ee30";>6572a64 Update to XStream 1.4.20 (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16411";>#16411) https://github.com/keycloak/keycloak/commit/8313baa50ee9d2b2483fa904fe081ddb7048cbba";>8313baa Set Snakeyaml to 1.33 in parent pom (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16382";>#16382) https://github.com/keycloak/keycloak/commit/7ccfd008d27c98c48c672ec3161e6711230cefb4";>7ccfd00 Update SDK to 4.0.6 https://github.com/keycloak/keycloak/commit/803ae181534bb803613fde6119f1bc4bd9478ec6";>803ae18 Verify if token is revoked when validating bearer tokens (https://github-redirect.dependabot.com/keycloak/keycloak/issues/16389";>#16389) https://github.com/keycloak/keycloak/commit/6c0e66a160f7a5ce58b9d678f9e292d451aaff7d";>6c0e66a Fix putAll issues https://github.com/keycloak/keycloak/commit/e7fa1cabbc9b0e17842536e22a978a592b40e631";>e7fa1ca Disabling strict https if hostname is diasabled https://github.com/keycloak/keycloak/commit/eb54328c85fd42fd851b2e1e687226a4918d3013";>eb54328 Resolving dns names used from tests from local host file Additional commits viewable in https://github.com/keycloak/keycloak/compare/19.0.2...20.0.3";>compare view [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.keycloak:keycloak-core&package-manager=maven&previous-version=19.0.2&new-version=20.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/activemq-artemis/network/alerts). -- This is an automated message from the Apache Git Service. To respond to the message, please
[GitHub] [activemq] NikitaShupletsov commented on a diff in pull request #848: Feature/replica broker
NikitaShupletsov commented on code in PR #848: URL: https://github.com/apache/activemq/pull/848#discussion_r1068833603 ## activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java: ## @@ -1296,9 +1297,36 @@ public QueueMessageReference getMessage(String id) { return null; } +public List getAllMessageIds() throws Exception { Review Comment: addressed there: https://github.com/apache/activemq/pull/953 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] maxfortun commented on pull request #950: Feature/scheduler activity via joblistener
maxfortun commented on PR #950: URL: https://github.com/apache/activemq/pull/950#issuecomment-1381020426 @mattrpav, as per our conversation in #949, reworked JobListener to have the following lifecycle hooks. Thoughts? Ended up refactoring `memory`, `kahadb`, and tests. 1. willScheduleJob 2. scheduleJob 3. didScheduleJob 4. willDispatchJob 5. dispatchJob 6. didDispatchJob -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] maxfortun commented on pull request #949: Track scheduler activity
maxfortun commented on PR #949: URL: https://github.com/apache/activemq/pull/949#issuecomment-1381016813 Closing this PR as a leaner approach was suggested. Submitting #950 as a proposal in continuation of this discussion. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] maxfortun closed pull request #949: Track scheduler activity
maxfortun closed pull request #949: Track scheduler activity URL: https://github.com/apache/activemq/pull/949 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic merged pull request #4327: NO-JIRA Add forgotten upgrade documentation about console redirect
clebertsuconic merged PR #4327: URL: https://github.com/apache/activemq-artemis/pull/4327 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic merged pull request #4328: ARTEMIS-4127 refactor multiprotocol JMS tests in AMQP package
clebertsuconic merged PR #4328: URL: https://github.com/apache/activemq-artemis/pull/4328 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic merged pull request #4330: ARTEMIS-4125 Fixing AutoCreateJmsDestinationTest::testAutoCreateOnSubscribeToTopic
clebertsuconic merged PR #4330: URL: https://github.com/apache/activemq-artemis/pull/4330 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #4330: ARTEMIS-4125 Fixing AutoCreateJmsDestinationTest::testAutoCreateOnSubscribeToTopic
clebertsuconic commented on PR #4330: URL: https://github.com/apache/activemq-artemis/pull/4330#issuecomment-1380942009 tests are good -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4320: ARTEMIS-3790 Support masked JMS credentials
jbertram commented on PR #4320: URL: https://github.com/apache/activemq-artemis/pull/4320#issuecomment-1380940556 @ryan-highley, no worries. I just didn't want this to fall completely off our radar. Your next steps sounds good. I'll review again once you push. Thanks! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1380901835 s390x compiled fine w/ multiple JDKs Unit tests running now: ref: https://ci-builds.apache.org/blue/organizations/jenkins/ActiveMQ%2FActiveMQ/detail/PR-956/3/pipeline/174 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] NikitaShupletsov commented on a diff in pull request #953: [AMQ-8354] Add helper methods needed for replica plugin.
NikitaShupletsov commented on code in PR #953: URL: https://github.com/apache/activemq/pull/953#discussion_r1068483608 ## activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java: ## @@ -2387,8 +2495,8 @@ private QueueMessageReference getMatchingMessage(MessageDispatchNotification mes messages.reset(); while (messages.hasNext()) { MessageReference node = messages.next(); -messages.remove(); Review Comment: The idea of this change is to delete only the message that we are looking for. Because deleting all messages up to the one we need prevents reading them in future. Basically if we delete them here, we will not be able to get them anymore. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] NikitaShupletsov commented on a diff in pull request #953: [AMQ-8354] Add helper methods needed for replica plugin.
NikitaShupletsov commented on code in PR #953: URL: https://github.com/apache/activemq/pull/953#discussion_r1068481508 ## activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java: ## @@ -54,7 +54,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class SchedulerBroker extends BrokerFilter implements JobListener { +public class SchedulerBroker extends MutableBrokerFilter implements JobListener { Review Comment: I wasn't able to find any information about possible `AtomicReference` overhead. I believe if there is some, it should be almost not noticeable -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] ryan-highley commented on pull request #4320: ARTEMIS-3790 Support masked JMS credentials
ryan-highley commented on PR #4320: URL: https://github.com/apache/activemq-artemis/pull/4320#issuecomment-1380834817 @jbertram Sorry for the delay--day job and all That makes sense. I was attempting to move the unmasking with as little invasiveness as possible, hence the additional properties and unmask calls in the ActiveMQConnection constructor. Looking at the `o.a.a.a.jms.client.ConnectionFactoryOptions` for how `deserializationWhiteList` is implemented led me to the equivalent unmasking approach in the resource adapter, which handles the `passwordCodec` property in its ConnectionFactory as you described. I'll update this code to enable setting the codec aligning with the precedent in the RA code. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
jbertram commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380799784 @michaelandrepearce, I can't even get `xmllint` to validate the normal `broker.xml` on a non-air-gapped system. Is there some trick to this? Here's what I did: 1. Created a fresh instance of Artemis 2.27.1 called `test`. 2. Ran this command from `ARTEMIS_HOME` ``` $ xmllint --valid --noout --schema schema/artemis-server.xsd path/to/test/etc/broker.xml path/to/test/etc/broker.xml:24: validity error : Validation failed: no DTD found ! xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> ^ path/to/test/etc/broker.xml validates ``` Is this a success or a failure? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
+ public int getMessagesDeliveredSize() { + return metrics.getMessagesDeliveredSize(); + } + + @Override + public int getMessagesDelivered() { + return metrics.getMessagesDelivered(); + } + + @Override + public int getMessagesAcknowledgedAwaitingCommit() { + return metrics.getMessagesAcknowledgedAwaitingCommit(); + } + public SessionCallback getCallback() { return callback; } + + static class ServerConsumerMetrics extends TransactionOperationAbstract { + + /** + * Since messages can be delivered (incremented) and acknowledged (decremented) at the same time we have to protect + * the encode size and make it atomic. The other fields are ok since they are only accessed from a single thread. + */ + private static final AtomicIntegerFieldUpdater messagesInTransitSizeUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesInTransitSize"); + + private volatile int messagesInTransitSize = 0; + + private static final AtomicIntegerFieldUpdater messagesAcknowledgedAwaitingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private volatile long lastDeliveredTime = 0; + + private volatile long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; Review Comment: If messagesDelivered and messagesDeliveredSize are primarily being read from other threads than the updaters, and arent synchronizing any of the same thing things used when updating the values, they should be volatile also ? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
michaelandrepearce commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380786448 @jbertram so air gapped, yes. Two things the team here found 1) xmllint didn't like it 2) we ignored our system process and bypassed xmllint pre check, and forced it in still just to see, and then upgraded broker from pre-existing 2.16 broker didn't go well. Its been 6 months now so exact error i cannot remember. but it needs some good air gap testing, and working out why these things. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
jbertram commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380782116 @michaelandrepearce, so in order to reproduce the issue I need to create an instance of the broker on an air-gapped system using the schema updates in this PR and then run `xmllint` on `broker.xml`? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on pull request #4330: ARTEMIS-4125 Fixing AutoCreateJmsDestinationTest::testAutoCreateOnSubscribeToTopic
clebertsuconic commented on PR #4330: URL: https://github.com/apache/activemq-artemis/pull/4330#issuecomment-1380779486 I will run tests... if it's all good I will merge it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
michaelandrepearce commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380771228 @jbertram so in a true fully air gapped environment linux tools like xmllint don't seem to like this. Which is used quite a bit in places to validate xml changes before applying to broker to ensure change doesn't foobar running system -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
jbertram commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380764154 @michaelandrepearce, I haven't done any direct testing, just code review. Can you elaborate on what you mean by "tested fully"? You mentioned doing an upgrade previously. Is that what you mean? Or is it sufficient to just create an instance and start it up? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #3479: ARTEMIS-3163 Experimental support for Netty IO_URING incubator
michaelandrepearce commented on PR #3479: URL: https://github.com/apache/activemq-artemis/pull/3479#issuecomment-1380758509 @jbertram i would like to still see this in, as long as we mark it experimental or in incubation in docs, i personally support this. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] michaelandrepearce commented on pull request #4122: ARTEMIS-3139 Anonymous types in Artemis config XSD
michaelandrepearce commented on PR #4122: URL: https://github.com/apache/activemq-artemis/pull/4122#issuecomment-1380754439 @jbertram has anything been done to fix the airgap issue? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
clebertsuconic commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1068389869 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java: ## @@ -174,6 +184,8 @@ public class ServerSessionPacketHandler implements ChannelHandler { private final Pool poolNullResponseV2; + private final Map producers = new HashMap<>(); Review Comment: can you instead use io.netty.util.collection.IntObjectHashMap please? It's a lot better for this case here. It's a simple replacement and it's just like a regular HashMap. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram merged pull request #4329: ARTEMIS-4125 Fixing AutoCreate Topics remove of the address
jbertram merged PR #4329: URL: https://github.com/apache/activemq-artemis/pull/4329 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] clebertsuconic commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
clebertsuconic commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1068362219 ## artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ClientSessionImpl.java: ## @@ -2026,10 +2028,20 @@ private ClientProducer internalCreateProducer(final SimpleString address, final int maxRate) throws ActiveMQException { checkClosed(); - ClientProducerInternal producer = new ClientProducerImpl(this, address, maxRate == -1 ? null : new TokenBucketLimiterImpl(maxRate, false), autoCommitSends && blockOnNonDurableSend, autoCommitSends && blockOnDurableSend, autoGroup, groupID == null ? null : new SimpleString(groupID), minLargeMessageSize, sessionContext); + ClientProducerInternal producer = new ClientProducerImpl(this, + address, + maxRate == -1 ? null : new TokenBucketLimiterImpl(maxRate, false), + autoCommitSends && blockOnNonDurableSend, + autoCommitSends && blockOnDurableSend, + autoGroup, groupID == null ? null : new SimpleString(groupID), + minLargeMessageSize, + sessionContext, + producerIDs.getAndIncrement()); Review Comment: I also prefer incrementAndGet(). as a matter of fact I never seen the opposite (getAndIncrement) I know it's just a preference, but if we could use incrementAndGet just to be consistent that would be my choice here. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1380708643 Ugh.. this approach switches nodes b/w stages. Got to make another pass.. Apache INFRA backlogged ~ 30 min to get a build node. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
gemmellr commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1068355313 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java: ## @@ -1513,7 +1524,137 @@ public String getConnectionRemoteAddress() { return this.session.getRemotingConnection().getTransportConnection().getRemoteAddress(); } + @Override + public int getMessagesInTransitSize() { + return metrics.getMessagesInTransitSize(); + } + + @Override + public int getMessagesInTransit() { + return deliveringRefs.size(); + } + + @Override + public long getLastDeliveredTime() { + return metrics.getLastDeliveredTime(); + } + + @Override + public long getLastAcknowledgedTime() { + return metrics.getLastAcknowledgedTime(); + } + + @Override + public long getMessagesAcknowledged() { + return metrics.getMessagesAcknowledged(); + } + + @Override + public int getMessagesDeliveredSize() { + return metrics.getMessagesDeliveredSize(); + } + + @Override + public int getMessagesDelivered() { + return metrics.getMessagesDelivered(); + } + + @Override + public int getMessagesAcknowledgedAwaitingCommit() { + return metrics.getMessagesAcknowledgedAwaitingCommit(); + } + public SessionCallback getCallback() { return callback; } + + static class ServerConsumerMetrics extends TransactionOperationAbstract { + + /** + * Since messages can be delivered (incremented) and acknowledged (decremented) at the same time we have to protect + * the encode size and make it atomic. The other fields are ok since they are only accessed from a single thread. + */ + private static final AtomicIntegerFieldUpdater messagesInTransitSizeUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesInTransitSize"); + + private volatile int messagesInTransitSize = 0; + + private static finalAtomicIntegerFieldUpdater messagesAcknowledgedAwaitingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private long lastDeliveredTime = 0; + + private long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; + + private int messagesAcknowledged = 0; + + + public int getMessagesInTransitSize() { + return messagesInTransitSizeUpdater.get(this); + } + + public int getMessagesDeliveredSize() { + return messagesDeliveredSize; + } + + public long getLastDeliveredTime() { + return lastDeliveredTime; + } + + public long getLastAcknowledgedTime() { + return lastAcknowledgedTime; + } + + public int getMessagesDelivered() { + return messagesDelivered; + } + + public int getMessagesAcknowledged() { + return messagesAcknowledged; + } + + public int getMessagesAcknowledgedAwaitingCommit() { + return messagesAcknowledgedAwaitingCommitUpdater.get(this); + } + + public void addMessage(int encodeSize) { + messagesInTransitSizeUpdater.addAndGet(this, encodeSize); + messagesDeliveredSize += encodeSize; + messagesDelivered++; + lastDeliveredTime = System.currentTimeMillis(); + } + + public void addAcknowledge(int encodeSize, Transaction tx) { + messagesInTransitSizeUpdater.addAndGet(this, -encodeSize); + messagesAcknowledged++; Review Comment: Yes. The method seems like it can still be multi-threaded, so doing ++ isnt safe. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4329: ARTEMIS-4125 Fixing AutoCreate Topics remove of the address
jbertram commented on PR #4329: URL: https://github.com/apache/activemq-artemis/pull/4329#issuecomment-1380697669 @clebertsuconic, LGTM -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] jbertram commented on pull request #4320: ARTEMIS-3790 Support masked JMS credentials
jbertram commented on PR #4320: URL: https://github.com/apache/activemq-artemis/pull/4320#issuecomment-138033 @ryan-highley, any feedback here? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] andytaylor commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
andytaylor commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1068285808 ## artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java: ## @@ -1513,7 +1524,137 @@ public String getConnectionRemoteAddress() { return this.session.getRemotingConnection().getTransportConnection().getRemoteAddress(); } + @Override + public int getMessagesInTransitSize() { + return metrics.getMessagesInTransitSize(); + } + + @Override + public int getMessagesInTransit() { + return deliveringRefs.size(); + } + + @Override + public long getLastDeliveredTime() { + return metrics.getLastDeliveredTime(); + } + + @Override + public long getLastAcknowledgedTime() { + return metrics.getLastAcknowledgedTime(); + } + + @Override + public long getMessagesAcknowledged() { + return metrics.getMessagesAcknowledged(); + } + + @Override + public int getMessagesDeliveredSize() { + return metrics.getMessagesDeliveredSize(); + } + + @Override + public int getMessagesDelivered() { + return metrics.getMessagesDelivered(); + } + + @Override + public int getMessagesAcknowledgedAwaitingCommit() { + return metrics.getMessagesAcknowledgedAwaitingCommit(); + } + public SessionCallback getCallback() { return callback; } + + static class ServerConsumerMetrics extends TransactionOperationAbstract { + + /** + * Since messages can be delivered (incremented) and acknowledged (decremented) at the same time we have to protect + * the encode size and make it atomic. The other fields are ok since they are only accessed from a single thread. + */ + private static final AtomicIntegerFieldUpdater messagesInTransitSizeUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesInTransitSize"); + + private volatile int messagesInTransitSize = 0; + + private static finalAtomicIntegerFieldUpdater messagesAcknowledgedAwaitingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private long lastDeliveredTime = 0; + + private long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; + + private int messagesAcknowledged = 0; + + + public int getMessagesInTransitSize() { + return messagesInTransitSizeUpdater.get(this); + } + + public int getMessagesDeliveredSize() { + return messagesDeliveredSize; + } + + public long getLastDeliveredTime() { + return lastDeliveredTime; + } + + public long getLastAcknowledgedTime() { + return lastAcknowledgedTime; + } + + public int getMessagesDelivered() { + return messagesDelivered; + } + + public int getMessagesAcknowledged() { + return messagesAcknowledged; + } + + public int getMessagesAcknowledgedAwaitingCommit() { + return messagesAcknowledgedAwaitingCommitUpdater.get(this); + } + + public void addMessage(int encodeSize) { + messagesInTransitSizeUpdater.addAndGet(this, encodeSize); + messagesDeliveredSize += encodeSize; + messagesDelivered++; + lastDeliveredTime = System.currentTimeMillis(); + } + + public void addAcknowledge(int encodeSize, Transaction tx) { + messagesInTransitSizeUpdater.addAndGet(this, -encodeSize); + messagesAcknowledged++; Review Comment: do you mean the messagesAcknowledged field? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #956: [#8133] Add s390x as a parameter for Jenkins
mattrpav commented on PR #956: URL: https://github.com/apache/activemq/pull/956#issuecomment-1380564668 @srajmane s390x build convo resumes here -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav commented on pull request #907: Add Jenkinsfile for s390x
mattrpav commented on PR #907: URL: https://github.com/apache/activemq/pull/907#issuecomment-1380562964 @srajmane I opened #956 which uses parameters (manual execution) as a first step. Need to understand how long the build runs on Apache's s390x. If we get quick turn-around times, we can add it to all PRs moving forward. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav closed pull request #907: Add Jenkinsfile for s390x
mattrpav closed pull request #907: Add Jenkinsfile for s390x URL: https://github.com/apache/activemq/pull/907 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] mattrpav merged pull request #955: [#9194] Add JDK 19 to Jenkins build
mattrpav merged PR #955: URL: https://github.com/apache/activemq/pull/955 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq] srajmane commented on pull request #907: Add Jenkinsfile for s390x
srajmane commented on PR #907: URL: https://github.com/apache/activemq/pull/907#issuecomment-1380345152 @jbonofre @mattrpav Could you please have a look? Thanks !! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] gemmellr commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
itingCommitUpdater = AtomicIntegerFieldUpdater.newUpdater(ServerConsumerMetrics.class, "messagesAcknowledgedAwaitingCommit"); + + private volatile int messagesAcknowledgedAwaitingCommit = 0; + + private int messagesDeliveredSize = 0; + + private long lastDeliveredTime = 0; + + private long lastAcknowledgedTime = 0; + + private int messagesDelivered = 0; + + private int messagesAcknowledged = 0; + + + public int getMessagesInTransitSize() { + return messagesInTransitSizeUpdater.get(this); + } + + public int getMessagesDeliveredSize() { + return messagesDeliveredSize; + } + + public long getLastDeliveredTime() { + return lastDeliveredTime; + } + + public long getLastAcknowledgedTime() { + return lastAcknowledgedTime; + } + + public int getMessagesDelivered() { + return messagesDelivered; + } + + public int getMessagesAcknowledged() { + return messagesAcknowledged; + } + + public int getMessagesAcknowledgedAwaitingCommit() { + return messagesAcknowledgedAwaitingCommitUpdater.get(this); + } + + public void addMessage(int encodeSize) { + messagesInTransitSizeUpdater.addAndGet(this, encodeSize); + messagesDeliveredSize += encodeSize; + messagesDelivered++; + lastDeliveredTime = System.currentTimeMillis(); + } + + public void addAcknowledge(int encodeSize, Transaction tx) { + messagesInTransitSizeUpdater.addAndGet(this, -encodeSize); + messagesAcknowledged++; Review Comment: I think this one is unsafe also. Looks like rollback synchronizes 'lock' but not the consumer itself as some other calls of this method from other threads do. The openwire bit using it doesnt synchronize on either. Given the large number of places this method is used from, some on the queue thread, others not, and the mishmash of different synchronization by those calls...I think it would be simpler/safer to just use an updater for this regardless whether it is currently safe, it is certainly brittle and its likely someone change other bits in a way that breaks this area later if it isnt already (which it looks like it is). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] andytaylor commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
andytaylor commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1067990772 ## artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenwireMessage.java: ## @@ -137,6 +137,11 @@ public String getAddress() { return null; } + @Override + public String getProducerID() { + return null; Review Comment: I will remove this separately -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [activemq-artemis] andytaylor commented on a diff in pull request #4183: ARTEMIS-3875 - adding consumer and producer metrics
andytaylor commented on code in PR #4183: URL: https://github.com/apache/activemq-artemis/pull/4183#discussion_r1067990421 ## artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/amq/AMQSession.java: ## @@ -392,7 +392,7 @@ public void send(final ProducerInfo producerInfo, assert clientId.toString().equals(this.connection.getState().getInfo().getClientId()) : "Session cached clientId must be the same of the connection"; originalCoreMsg.putStringProperty(MessageUtil.CONNECTION_ID_PROPERTY_NAME, clientId); - + originalCoreMsg.putStringProperty(org.apache.activemq.artemis.api.core.Message.PRODUCER_ID, producerInfo.getProducerId().toString()); Review Comment: Removed as part of previous change, I will talk to @clebertsuconic and send a separate commit to remove OpenWire as not needed -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org