You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/03/17 14:28:00 UTC

[jira] [Work logged] (ARTEMIS-2661) AMQP Journal loading is triggering reencode

     [ https://issues.apache.org/jira/browse/ARTEMIS-2661?focusedWorklogId=404744&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-404744 ]

ASF GitHub Bot logged work on ARTEMIS-2661:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Mar/20 14:27
            Start Date: 17/Mar/20 14:27
    Worklog Time Spent: 10m 
      Work Description: franz1981 commented on pull request #3023: ARTEMIS-2661 AMQP Journal loading is triggering reencode
URL: https://github.com/apache/activemq-artemis/pull/3023
 
 
   
 
----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 404744)
    Remaining Estimate: 0h
            Time Spent: 10m

> AMQP Journal loading is triggering reencode
> -------------------------------------------
>
>                 Key: ARTEMIS-2661
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2661
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.12.0
>            Reporter: Francesco Nigro
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The journal loading is seeing AMQP messages to be fully decoded while they shouldn't not; it seems causes by AMQPStandardMessage:: reloadPersistence:
> {code:java}
>    @Override
>    public void reloadPersistence(ActiveMQBuffer record, CoreMessageObjectPools pools) {
>       int size = record.readInt();
>       byte[] recordArray = new byte[size];
>       record.readBytes(recordArray);
>       data = ReadableBuffer.ByteBufferReader.wrap(ByteBuffer.wrap(recordArray));
>       // Message state is now that the underlying buffer is loaded, but the contents not yet scanned
>       resetMessageData();
>       modified = false;
>       messageDataScanned = RELOAD_PERSISTENCE;
>       // can happen when moved to a durable location.  We must re-encode here to
>       // avoid a subsequent redelivery from suddenly appearing with a durable header
>       // tag when the initial delivery did not.
>       if (!isDurable()) {
>          setDurable(true);
>          reencode();
>       }
>    }
> {code}
> Specifically by:
> {code:java}
>       if (!isDurable()) {
>          setDurable(true);
>          reencode();
>       } 
> {code}
> This code path shouldn't really be taken so need some investigation to understand what's going on.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)