You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2014/05/29 14:04:01 UTC

[jira] [Comment Edited] (QPID-5782) VirtualHostHouseKeeper tries to check queues that are not yet open leading to NPE in logs

    [ https://issues.apache.org/jira/browse/QPID-5782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14012304#comment-14012304 ] 

Keith Wall edited comment on QPID-5782 at 5/29/14 12:02 PM:
------------------------------------------------------------

I've made commit  https://svn.apache.org/r1598260 to simply prevent the housekeeper from checking non-active queues, and prevent the screeds of NPE in the perf test logs.  At the point where we permit the state of queues to be altered at runtime, we may what to look at this again, considering the effect on the housekeeper if a queue transits to stopped or quiesced whilst the housekeeper is in flight.



was (Author: k-wall):
I've made commit  https://svn.apache.org/r1598260 to simply prevent the housekeeper from checking non-active queues, and prevent the screeds of NPE in the perf test logs.  At the point where we permit the state of queues to be altered at runtime, we may been to look at this again, considering the effect on the housekeeper if a queue transits to stopped or quiesced whilst the housekeeper is in flight.


> VirtualHostHouseKeeper tries to check queues that are not yet open leading to NPE in logs
> -----------------------------------------------------------------------------------------
>
>                 Key: QPID-5782
>                 URL: https://issues.apache.org/jira/browse/QPID-5782
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.29
>            Reporter: Keith Wall
>            Assignee: Alex Rudyy
>             Fix For: 0.29
>
>
> Since QPID-5710, there has been a possibility that the housekeeper can attempt to check that message status on queues that are not yet open, and this leads to an NPE as such queues have a null entry list.
> TransactionTimeoutTest occasionally shows this problem (see log excerpt below).  It does not cause a test failure as the housekeeper merely logs all exceptions and continues.
> It seems QPID-5710 introduced this possibility as it moved the creation of the queue entry list from construction time to onOpen().
> {noformat}
> IoReceiver - localhost/127.0.0.1:15672 2014-05-23 08:00:17,586 DEBUG [qpid.client.protocol.AMQProtocolHandler] (1873784078)Method frame received: [ExchangeDeclareOkBodyImpl: ]
> main 2014-05-23 08:00:17,586 DEBUG [qpid.protocol] SEND: [org.apache.qpid.client.protocol.AMQProtocolHandler@6fafad0e] Frame channelId: 3, bodyFrame: [QueueDeclareBodyImpl: ticket=0, queue=TransactionTimeoutTest-testConsumerIdleCommit, passive=false, durable=true, exclusive=false, autoDelete=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG [server.protocol.v0_8.AMQProtocolEngine] Frame handled in 0 ms. Frame: Frame channelId: 3, bodyFrame: [ExchangeDeclareBodyImpl: ticket=0, exchange=amq.direct, type=direct, passive=true, durable=false, autoDelete=false, internal=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG [server.protocol.v0_8.AMQChannel] sync() called on channel 3(1965183178)
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,586 DEBUG [server.protocol.v0_8.AMQProtocolEngine] RECV: Frame channelId: 3, bodyFrame: [QueueDeclareBodyImpl: ticket=0, queue=TransactionTimeoutTest-testConsumerIdleCommit, passive=false, durable=true, exclusive=false, autoDelete=false, nowait=false, arguments=null]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,587 DEBUG [server.store.berkeleydb.BDBMessageStore] Create [name=TransactionTimeoutTest-testConsumerIdleCommit, categoryClass=interface org.apache.qpid.server.model.Queue, type=Queue, id=848209cf-5c99-4b95-8488-c07973eb199f]
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,587 DEBUG [server.store.berkeleydb.BDBMessageStore] Storing configured object record: [name=TransactionTimeoutTest-testConsumerIdleCommit, categoryClass=interface org.apache.qpid.server.model.Queue, type=Queue, id=848209cf-5c99-4b95-8488-c07973eb199f]
> test:VirtualHostHouseKeepingTask 2014-05-23 08:00:17,589 DEBUG [qpid.server.virtualhost.AbstractVirtualHost] Checking message status for queue: TransactionTimeoutTest-testConsumerIdleCommit
> test:VirtualHostHouseKeepingTask 2014-05-23 08:00:17,589 ERROR [qpid.server.virtualhost.AbstractVirtualHost] Exception in housekeeping for queue: TransactionTimeoutTest-testConsumerIdleCommit
> java.lang.NullPointerException
>         at org.apache.qpid.server.queue.AbstractQueue.checkMessageStatus(AbstractQueue.java:1999)
>         at org.apache.qpid.server.virtualhost.AbstractVirtualHost$VirtualHostHouseKeepingTask.execute(AbstractVirtualHost.java:935)
>         at org.apache.qpid.server.virtualhost.HouseKeepingTask$1.run(HouseKeepingTask.java:61)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:356)
>         at org.apache.qpid.server.virtualhost.HouseKeepingTask.run(HouseKeepingTask.java:54)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         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:744)
> IoReceiver - /127.0.0.1:50620 2014-05-23 08:00:17,598 INFO [qpid.message.queue.created] [con:952(guest@/127.0.0.1:50620/test)/ch:3] [vh(/test)/qu(TransactionTimeoutTest-testConsumerIdleCommit)] QUE-1001 : Create : Durable
>  {noformat} 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org