Hi Helen, yes - they both look like aspects of the same race condition whereby AMQP operations are seeing queue objects before they have been completely initialised (in particular before the onOpen() method of the queue has completed).
I'm about to go to sleep here, and am in meetings most of tmr, so I may not get a chance to dig deeper until later this week - however we'll look to provide some sort of patch to fix this ASAP though. Apologies, Rob On 1 July 2015 at 00:33, Helen Kwong <[email protected]> wrote: > Hi Qpid experts, > > I am testing using Java broker 0.32 with client 0.16, and have run into > NPEs when I create consumers to queues in an initialization step to force > the queues to be created. I'm not able to reproduce this reliably, and it's > possible that this is triggered by some race condition, since we can have > multiple threads trying to register consumers to these new queues at the > same time. Any idea what is causing this? (We used to use the 0.16 broker > with the same initialization and didn't run into this.) > > Stacktrace I've seen: > > qpidbrkr`20150630085024.987`Exception processing command > java.lang.NullPointerException > at > org.apache.qpid.server.queue.AbstractQueue.addConsumer(AbstractQueue.java:802) > at > org.apache.qpid.server.queue.AbstractQueue.addConsumer(AbstractQueue.java:100) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.messageSubscribe(ServerSessionDelegate.java:327) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.messageSubscribe(ServerSessionDelegate.java:82) > at > org.apache.qpid.transport.MessageSubscribe.dispatch(MessageSubscribe.java:110) > at > org.apache.qpid.transport.SessionDelegate.command(SessionDelegate.java:55) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.command(ServerSessionDelegate.java:99) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.command(ServerSessionDelegate.java:82) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at org.apache.qpid.transport.Session.received(Session.java:596) > at > org.apache.qpid.transport.Connection.dispatch(Connection.java:452) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:64) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:40) > at > org.apache.qpid.transport.MethodDelegate.messageSubscribe(MethodDelegate.java:131) > at > org.apache.qpid.transport.MessageSubscribe.dispatch(MessageSubscribe.java:110) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:54) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:40) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at > org.apache.qpid.transport.Connection.received(Connection.java:405) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.access$001(ServerConnection.java:64) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection$1.run(ServerConnection.java:316) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection$1.run(ServerConnection.java:312) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:356) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.received(ServerConnection.java:311) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.received(ServerConnection.java:64) > at > org.apache.qpid.transport.network.Assembler.emit(Assembler.java:97) > at > org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:198) > at > org.apache.qpid.transport.network.Assembler.frame(Assembler.java:131) > at org.apache.qpid.transport.network.Frame.delegate(Frame.java:128) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:102) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:44) > at > org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:199) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:114) > at > org.apache.qpid.server.protocol.v0_10.ProtocolEngine_0_10.received(ProtocolEngine_0_10.java:179) > at > org.apache.qpid.server.protocol.v0_10.ProtocolEngine_0_10.received(ProtocolEngine_0_10.java:43) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:153) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:51) > at > org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161) > at java.lang.Thread.run(Thread.java:745) > > > Another that I've seen that seems related: > > qpidbrkr`20150630085024.954`Exception processing command > java.lang.NullPointerException > at > org.apache.qpid.server.queue.AbstractQueue.getAvailableAttributes(AbstractQueue.java:635) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.queueQuery(ServerSessionDelegate.java:1533) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.queueQuery(ServerSessionDelegate.java:82) > at org.apache.qpid.transport.QueueQuery.dispatch(QueueQuery.java:87) > at > org.apache.qpid.transport.SessionDelegate.command(SessionDelegate.java:55) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.command(ServerSessionDelegate.java:99) > at > org.apache.qpid.server.protocol.v0_10.ServerSessionDelegate.command(ServerSessionDelegate.java:82) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at org.apache.qpid.transport.Session.received(Session.java:596) > at > org.apache.qpid.transport.Connection.dispatch(Connection.java:452) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:64) > at > org.apache.qpid.transport.ConnectionDelegate.handle(ConnectionDelegate.java:40) > at > org.apache.qpid.transport.MethodDelegate.queueQuery(MethodDelegate.java:215) > at org.apache.qpid.transport.QueueQuery.dispatch(QueueQuery.java:87) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:54) > at > org.apache.qpid.transport.ConnectionDelegate.command(ConnectionDelegate.java:40) > at org.apache.qpid.transport.Method.delegate(Method.java:159) > at > org.apache.qpid.transport.Connection.received(Connection.java:405) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.access$001(ServerConnection.java:64) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection$1.run(ServerConnection.java:316) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection$1.run(ServerConnection.java:312) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:356) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.received(ServerConnection.java:311) > at > org.apache.qpid.server.protocol.v0_10.ServerConnection.received(ServerConnection.java:64) > at > org.apache.qpid.transport.network.Assembler.emit(Assembler.java:97) > at > org.apache.qpid.transport.network.Assembler.assemble(Assembler.java:198) > at > org.apache.qpid.transport.network.Assembler.frame(Assembler.java:131) > at org.apache.qpid.transport.network.Frame.delegate(Frame.java:128) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:102) > at > org.apache.qpid.transport.network.Assembler.received(Assembler.java:44) > at > org.apache.qpid.transport.network.InputHandler.next(InputHandler.java:199) > at > org.apache.qpid.transport.network.InputHandler.received(InputHandler.java:114) > at > org.apache.qpid.server.protocol.v0_10.ProtocolEngine_0_10.received(ProtocolEngine_0_10.java:179) > at > org.apache.qpid.server.protocol.v0_10.ProtocolEngine_0_10.received(ProtocolEngine_0_10.java:43) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:153) > at > org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:51) > at > org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161) > at java.lang.Thread.run(Thread.java:745) > > > Thanks! > > Helen --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
