activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (AMQ-1805) Persistent message leak when broker run out of disk space
Date Thu, 19 Jun 2008 16:13:00 GMT

     [ https://issues.apache.org/activemq/browse/AMQ-1805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rob Davies reassigned AMQ-1805:
-------------------------------

    Assignee: Rob Davies

> Persistent message leak when broker run out of disk space
> ---------------------------------------------------------
>
>                 Key: AMQ-1805
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1805
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: ActiveMQ 5.1 (AMQStore w/o SystemUsage configuration)
> Windows XP SP2
> ActiveMQ CPP 2.1.3
>            Reporter: Bruce Lee
>            Assignee: Rob Davies
>             Fix For: 5.2.0
>
>         Attachments: amq-1805.diff
>
>
> In our environment, we have several ActvieMQ CPP clients sending persistent messages
continuously to a ActiveMQ 5.1 broker. In normal condition the broker works fine until it
ran out of disk space. At that point the client would receive out of disk space advisory message
AFTER sending the message, therefore the message should be removed from broker, however, the
message are kept in the memory due to a problem in the DataFileAppender & AsyncDatamanager,
when the disk is full, the message is saved in the inflightWrites map but never taken out
since the enqueue will fail due to IOException.
>         synchronized (this) {
>             // Find the position where this item will land at.
>             DataFile dataFile = dataManager.allocateLocation(location);
>             if( !sync ) {
>                 inflightWrites.put(new WriteKey(location), write);
>             }
>             batch = enqueue(dataFile, write);
>         }
> and
>         synchronized (this) {
>             // Find the position where this item will land at.
>             DataFile dataFile = dataManager.allocateLocation(location);
>             inflightWrites.put(new WriteKey(location), write);
>             batch = enqueue(dataFile, write);
>         }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message