[ 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to