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: Allen Yu


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.

Reply via email to