You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "Pothier, Peter" <pp...@CROSSBEAMSYS.COM> on 2010/10/13 18:05:28 UTC

No Space exceptions though disk no longer full

Hi,

 

We are using ActiveMQ 5.3.0 with kahaDB.

 

When we fill the disk partition to 100%, we get

     "No space left on device"

exceptions.  Good.  However, if we reduce the disk usage, we continue

to get exceptions even though there is plenty of disk space.

 

Is there a way to pre-allocate kahaDB memory so that it always has

sufficient memory resources?  Or a configuration parameter that

affects this behavior?

 

 

A little more detail...

 

We have kahaDB storing data in a /mgmt partition.  We fill this
partition

to 100% by copying a large file.  At this point we get exceptions

 

 

Error occured while processing async command: ActiveMQTextMessage
{commandId = 3, responseRequired = false, messageId =
ID:Peter-53524-1286982300338-3:33:-1:1:1, originalDestination = null,
originalTransactionId = null, producerId =
ID:Peter-53524-1286982300338-3:33:-1:1, destination = queue://producer,
transactionId = null, expiration = 1286991041000, timestamp =
1286983841505, arrival = 0, brokerInTime = 1286983841505, brokerOutTime
= 0, correlationId = null, replyTo = null, persistent = true, type =
null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId
= null, compressed = false, userID = null, content = null,
marshalledProperties = null, dataStructure = null, redeliveryCounter =
0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody
= true, droppable = false, text = <....>}, exception:
java.io.IOException: No space left on device |
org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
Transport: tcp:///1.1.1.20:53296

java.io.IOException: No space left on device

        at java.io.RandomAccessFile.writeBytes(Native Method)

        at java.io.RandomAccessFile.write(RandomAccessFile.java:466)

        at
org.apache.kahadb.journal.DataFileAppender.processQueue(DataFileAppender
.java:370)

 

 

However, even after reducing the disk usage from 100%, by removing the

large file, we continue to get this same exception.

 

Are there any configuration parameters that may help this behavior

so that messages can be accepted once the disk usage is restored

to normal?

 

Here's our kahaDB configuration

 

        <persistenceAdapter>

             <kahaDB
directory="/mgmt/activemq/data/dynamic-broker1/kahadb"
indexWriteBatchSize="1000" enableIndexWriteAsync="true"
enableJournalDiskSyncs="false" />

        </persistenceAdapter>

 

Or can we pre-allocate all of the disk space need by kahaDB?

 

Thanks,

 

Peter P


RE: No Space exceptions though disk no longer full

Posted by "Pothier, Peter" <pp...@CROSSBEAMSYS.COM>.
On further review, this may have been fixed by the work done on

    https://issues.apache.org/activemq/browse/AMQ-2042

Peter P

From: Pothier, Peter
Sent: Friday, October 15, 2010 12:28 PM
To: Pothier, Peter; 'users@activemq.apache.org'
Subject: RE: No Space exceptions though disk no longer full

This works much better with ActiveMQ 5.3.1.  In fact, no exceptions are seen
even though the disk partition is 100% full.  I assume this is because db-1.log
is created as a sparse file?

I also assume this better behavior is related to this fix?

    https://issues.apache.org/activemq/browse/AMQ-2478

Peter P

From: Pothier, Peter
Sent: Wednesday, October 13, 2010 12:05 PM
To: users@activemq.apache.org; Pothier, Peter
Subject: No Space exceptions though disk no longer full

Hi,

We are using ActiveMQ 5.3.0 with kahaDB.

When we fill the disk partition to 100%, we get
     "No space left on device"
exceptions.  Good.  However, if we reduce the disk usage, we continue
to get exceptions even though there is plenty of disk space.

Is there a way to pre-allocate kahaDB memory so that it always has
sufficient memory resources?  Or a configuration parameter that
affects this behavior?


A little more detail...

We have kahaDB storing data in a /mgmt partition.  We fill this partition
to 100% by copying a large file.  At this point we get exceptions


Error occured while processing async command: ActiveMQTextMessage {commandId = 3, responseRequired = false, messageId = ID:Peter-53524-1286982300338-3:33:-1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:Peter-53524-1286982300338-3:33:-1:1, destination = queue://producer, transactionId = null, expiration = 1286991041000, timestamp = 1286983841505, arrival = 0, brokerInTime = 1286983841505, brokerOutTime = 0, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = <....>}, exception: java.io.IOException: No space left on device | org.apache.activemq.broker.TransportConnection.Service | ActiveMQ Transport: tcp:///1.1.1.20:53296
java.io.IOException: No space left on device
        at java.io.RandomAccessFile.writeBytes(Native Method)
        at java.io.RandomAccessFile.write(RandomAccessFile.java:466)
        at org.apache.kahadb.journal.DataFileAppender.processQueue(DataFileAppender.java:370)


However, even after reducing the disk usage from 100%, by removing the
large file, we continue to get this same exception.

Are there any configuration parameters that may help this behavior
so that messages can be accepted once the disk usage is restored
to normal?

Here's our kahaDB configuration

        <persistenceAdapter>
             <kahaDB directory="/mgmt/activemq/data/dynamic-broker1/kahadb" indexWriteBatchSize="1000" enableIndexWriteAsync="true" enableJournalDiskSyncs="false" />
        </persistenceAdapter>

Or can we pre-allocate all of the disk space need by kahaDB?

Thanks,

Peter P

RE: No Space exceptions though disk no longer full

Posted by "Pothier, Peter" <pp...@CROSSBEAMSYS.COM>.
This works much better with ActiveMQ 5.3.1.  In fact, no exceptions are seen
even though the disk partition is 100% full.  I assume this is because db-1.log
is created as a sparse file?

I also assume this better behavior is related to this fix?

    https://issues.apache.org/activemq/browse/AMQ-2478

Peter P

From: Pothier, Peter
Sent: Wednesday, October 13, 2010 12:05 PM
To: users@activemq.apache.org; Pothier, Peter
Subject: No Space exceptions though disk no longer full

Hi,

We are using ActiveMQ 5.3.0 with kahaDB.

When we fill the disk partition to 100%, we get
     "No space left on device"
exceptions.  Good.  However, if we reduce the disk usage, we continue
to get exceptions even though there is plenty of disk space.

Is there a way to pre-allocate kahaDB memory so that it always has
sufficient memory resources?  Or a configuration parameter that
affects this behavior?


A little more detail...

We have kahaDB storing data in a /mgmt partition.  We fill this partition
to 100% by copying a large file.  At this point we get exceptions


Error occured while processing async command: ActiveMQTextMessage {commandId = 3, responseRequired = false, messageId = ID:Peter-53524-1286982300338-3:33:-1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:Peter-53524-1286982300338-3:33:-1:1, destination = queue://producer, transactionId = null, expiration = 1286991041000, timestamp = 1286983841505, arrival = 0, brokerInTime = 1286983841505, brokerOutTime = 0, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = <....>}, exception: java.io.IOException: No space left on device | org.apache.activemq.broker.TransportConnection.Service | ActiveMQ Transport: tcp:///1.1.1.20:53296
java.io.IOException: No space left on device
        at java.io.RandomAccessFile.writeBytes(Native Method)
        at java.io.RandomAccessFile.write(RandomAccessFile.java:466)
        at org.apache.kahadb.journal.DataFileAppender.processQueue(DataFileAppender.java:370)


However, even after reducing the disk usage from 100%, by removing the
large file, we continue to get this same exception.

Are there any configuration parameters that may help this behavior
so that messages can be accepted once the disk usage is restored
to normal?

Here's our kahaDB configuration

        <persistenceAdapter>
             <kahaDB directory="/mgmt/activemq/data/dynamic-broker1/kahadb" indexWriteBatchSize="1000" enableIndexWriteAsync="true" enableJournalDiskSyncs="false" />
        </persistenceAdapter>

Or can we pre-allocate all of the disk space need by kahaDB?

Thanks,

Peter P