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 2023/02/03 17:09:00 UTC

[jira] [Work logged] (ARTEMIS-4155) Broker will dead lock if sending OpenWire Large Messages With Journal Retention configured.

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

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

                Author: ASF GitHub Bot
            Created on: 03/Feb/23 17:08
            Start Date: 03/Feb/23 17:08
    Worklog Time Spent: 10m 
      Work Description: clebertsuconic commented on code in PR #4359:
URL: https://github.com/apache/activemq-artemis/pull/4359#discussion_r1096044858


##########
artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java:
##########
@@ -878,7 +878,7 @@ public final void addBytesToLargeMessage(final SequentialFile file,
    private void historyBody(long messageId, EncodingSupport partialBuffer) {
 
       try {
-         messageJournal.appendAddEvent(messageId, JournalRecordIds.ADD_MESSAGE_BODY, EncoderPersister.getInstance(), partialBuffer, true, null);
+         messageJournal.appendAddEvent(messageId, JournalRecordIds.ADD_MESSAGE_BODY, EncoderPersister.getInstance(), partialBuffer, false, null);

Review Comment:
   lol... this is "the fix"





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

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

> Broker will dead lock if sending OpenWire Large Messages With Journal Retention configured.
> -------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4155
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4155
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Clebert Suconic
>            Assignee: Clebert Suconic
>            Priority: Major
>             Fix For: 2.29.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> the LargeServerMessageImpl.asLargeMessage will check if the message is beyond the journal buffer size and convert it to large.
> if retention is used, this operation tries to make a sync operation on the journal which will never complete because is being called within the JournalExecutor itself. It's a server's deadlock on this case (actually technically a starvation, but same results).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)