Lorenz Quack created QPID-6710:
----------------------------------

             Summary: NPE masks IOException on running out of disk space
                 Key: QPID-6710
                 URL: https://issues.apache.org/jira/browse/QPID-6710
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
            Reporter: Lorenz Quack


When the broker is running out of disk space the following issue can occur.

{noformat}
########################################################################
#
# Unhandled Exception org.apache.qpid.server.store.StoreException: Unexpected 
exception occurred on store operation in Thread virtualhost-default-iopool-55
#
# Exiting
#
########################################################################
org.apache.qpid.server.store.StoreException: Unexpected exception occurred on 
store operation
        at 
org.apache.qpid.server.store.berkeleydb.StandardEnvironmentFacade.handleDatabaseException(StandardEnvironmentFacade.java:287)
        at 
org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.removeMessage(AbstractBDBMessageStore.java:317)
        at 
org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore$StoredBDBMessage.remove(AbstractBDBMessageStore.java:1234)
        at 
org.apache.qpid.server.message.AbstractServerMessageImpl.decrementReference(AbstractServerMessageImpl.java:101)
        at 
org.apache.qpid.server.message.AbstractServerMessageImpl.access$500(AbstractServerMessageImpl.java:37)
        at 
org.apache.qpid.server.message.AbstractServerMessageImpl$Reference.release(AbstractServerMessageImpl.java:275)
        at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.deliverCurrentMessageIfComplete(AMQChannel.java:526)
        at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.publishContentBody(AMQChannel.java:655)
        at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveMessageContent(AMQChannel.java:2519)
        at org.apache.qpid.framing.ContentBody.process(ContentBody.java:105)
        at org.apache.qpid.codec.AMQDecoder.processFrame(AMQDecoder.java:394)
        at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:114)
        at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.access$000(BrokerDecoder.java:37)
        at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:80)
        at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:76)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:75)
        at org.apache.qpid.codec.AMQDecoder.processInput(AMQDecoder.java:370)
        at org.apache.qpid.codec.AMQDecoder.decodeBuffer(AMQDecoder.java:259)
        at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8$2.run(AMQPConnection_0_8.java:319)
        at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8$2.run(AMQPConnection_0_8.java:299)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:356)
        at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8.received(AMQPConnection_0_8.java:298)
        at 
org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:138)
        at 
org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:465)
        at 
org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:45)
        at 
org.apache.qpid.server.transport.NonBlockingConnection.processData(NonBlockingConnection.java:398)
        at 
org.apache.qpid.server.transport.NonBlockingConnection.readAndProcessData(NonBlockingConnection.java:349)
        at 
org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.doRead(NonBlockingConnectionPlainDelegate.java:39)
        at 
org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:337)
        at 
org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:229)
        at 
org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:119)
        at 
org.apache.qpid.server.transport.NetworkConnectionScheduler.access$000(NetworkConnectionScheduler.java:37)
        at 
org.apache.qpid.server.transport.NetworkConnectionScheduler$2.run(NetworkConnectionScheduler.java:100)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at 
org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.removeMessage(AbstractBDBMessageStore.java:227)
        ... 37 more

{noformat}

Broker log file might have the issue reported in some cases as:
{noformat}
2015-07-23 05:19:30,460 INFO  [default:FileSystemSpaceChecker] 
(q.m.v.filesystem_full) - [default:FileSystemSpaceChecker] 
[vh(/default)/ms(BDBMessageStore)] VHT-1006 : Filesystem is over 90 per cent 
full, enforcing flow control.
2015-07-23 05:19:46,668 ERROR [IO-/169.124.113.161:58633] 
(o.a.q.s.u.ServerScopedRuntimeException) - Unexpected exception occurred on 
store operation
com.sleepycat.je.LogWriteException: (JE 5.0.104) Environment must be closed, 
caused by: com.sleepycat.je.LogWriteException: Environment invalid because of 
previous exception: (JE 5.0.104) 
/apps/qpid/destruction-tests/qpid-broker/6.0.0-SNAPSHOT/work/default/messages 
java.io.IOException: No space left on device LOG_WRITE: IOExcep
{noformat}

However, in some other cases exception is not get stored in the logs leaving 
only NPE (reported into system output) to be the only evidence of an issue 
which might confuse the user about the nature of a problem



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to