AMQP swiftlet locks up

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

AMQP swiftlet locks up

serega
We use qpid-proton-0.6 (recommended here on the forum) to send/receive messages to/from SwiftMQ over AMQP. We had various issues, but overall qpid works well with SwiftMQ.  By an accident I subscribed to  an address that doesn't have a queue or topic at the end:  "amqp://10.250.0.127:5672/". The client obviously didn't get any messages and SwiftMQ threw an exception (pasted below).  What happened afterwords is that no AMQP client was able to connect to SwiftMQ, and  I had to restart the process  to get things back on track.  Further, the SwiftMQ process didn't response to regular kill, and I had to resort to kill -9 to stop the process.   SwiftMQ should handle gracefully the above scenario, and shouldn't lock up preventing other clients to communicate with the server.


Got Exception:
    ThreadGroup: amqp.session
    ActiveTask : PipelineQueue, dispatchToken=SessionHandler
Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: 0
        at com.swiftmq.impl.topic.standard.TopicManagerImpl.isTopicDefined(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.j.visit(Unknown Source)
        at com.swiftmq.amqp.v100.generated.messaging.message_format.AddressString.accept(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.ServerLink.verifyLocalAddress(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.SourceLink.verifyLocalAddress(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.e.b(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.e.visit(Unknown Source)
        at com.swiftmq.amqp.v100.generated.transport.performatives.AttachFrame.accept(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.SessionHandler.visit(Unknown Source)
        at com.swiftmq.impl.amqp.amqp.v01_00_00.po.POSessionFrameReceived.accept(Unknown Source)
        at com.swiftmq.tools.pipeline.PipelineQueue.process(Unknown Source)
        at com.swiftmq.tools.queue.SingleProcessorQueue.dequeue(Unknown Source)
        at com.swiftmq.tools.pipeline.PipelineQueue$QueueProcessor.run(Unknown Source)
        at com.swiftmq.impl.threadpool.standard.PoolThread.run(Unknown Source)

Reply | Threaded
Open this post in threaded view
|

Re: AMQP swiftlet locks up

IIT Software
Administrator
This is a bug and will be fixed. Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: AMQP swiftlet locks up

serega
Can you reply to this thread when the fix is available for download? Thanks.
Reply | Threaded
Open this post in threaded view
|

Re: AMQP swiftlet locks up

IIT Software
Administrator
The fix is available in SwiftMQ 9.7.0.