Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-1805

Persistent message leak when broker run out of disk space

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.1.0
    • 5.2.0
    • Broker
    • None
    • ActiveMQ 5.1 (AMQStore w/o SystemUsage configuration)
      Windows XP SP2
      ActiveMQ CPP 2.1.3

    • Patch Available

    Description

      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); }

      Attachments

        1. amq-1805.diff
          0.9 kB
          Bruce Lee

        Issue Links

          Activity

            People

              rajdavies Robert Davies
              bluefox Bruce Lee
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: