[ https://issues.apache.org/jira/browse/ARTEMIS-4668?focusedWorklogId=908195&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-908195 ]
ASF GitHub Bot logged work on ARTEMIS-4668: ------------------------------------------- Author: ASF GitHub Bot Created on: 04/Mar/24 23:39 Start Date: 04/Mar/24 23:39 Worklog Time Spent: 10m Work Description: clebertsuconic commented on code in PR #4840: URL: https://github.com/apache/activemq-artemis/pull/4840#discussion_r1511938204 ########## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPLargeMessageReader.java: ########## @@ -77,39 +74,68 @@ public AMQPLargeMessageReader open() { } @Override - public Message readBytes(Delivery delivery) throws Exception { + public boolean readBytes(Delivery delivery) throws Exception { if (closed) { throw new IllegalStateException("AMQP Large Message Reader is closed and read cannot proceed"); } + serverReceiver.connection.requireInHandler(); + + logger.trace("Reading {}", delivery); + final Receiver receiver = ((Receiver) delivery.getLink()); final ReadableBuffer dataBuffer = receiver.recv(); + final AMQPSessionCallback sessionSPI = serverReceiver.getSessionContext().getSessionSPI(); + if (currentMessage == null) { - final AMQPSessionCallback sessionSPI = serverReceiver.getSessionContext().getSessionSPI(); final long id = sessionSPI.getStorageManager().generateID(); - currentMessage = new AMQPLargeMessage(id, delivery.getMessageFormat(), null, - sessionSPI.getCoreMessageObjectPools(), - sessionSPI.getStorageManager()); + currentMessage = new AMQPLargeMessage(id, delivery.getMessageFormat(), null, sessionSPI.getCoreMessageObjectPools(), sessionSPI.getStorageManager()); currentMessage.parseHeader(dataBuffer); - + logger.trace("Initializing current message {} on {}", currentMessage, this); sessionSPI.getStorageManager().largeMessageCreated(id, currentMessage); + sessionSPI.execute(currentMessage::validateFile); } - currentMessage.addBytes(dataBuffer); + logger.trace("Disable autoread on {}", this); Review Comment: @tabish121 I had a toString() method added when I was debugging this... let me think about it tomorrow if I should add the toString or remove this trace. Issue Time Tracking ------------------- Worklog Id: (was: 908195) Time Spent: 1h 20m (was: 1h 10m) > Move AMQP Large Message File Handling away from Netty thread > ------------------------------------------------------------ > > Key: ARTEMIS-4668 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4668 > Project: ActiveMQ Artemis > Issue Type: Bug > Affects Versions: 2.32.0 > Reporter: Clebert Suconic > Assignee: Clebert Suconic > Priority: Major > Fix For: 2.33.0 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Operations like file.open, file.close, and file.sync should be moved away > from the Netty Thread for AMQP Large Messages > This task now is about moving the processing for AMQP Messages. we may in a > near future also improve tunneled large messages. For now we will do for AMQP > messages only. -- This message was sent by Atlassian Jira (v8.20.10#820010)