Julien The problem you described should be now fixed both on trunk and the 6.0.x branch [1]. The problem was as suspected, there was a race that could manifest if a new connection tried to associate itself with the virtual host as the virtual host was in the process of being shutdown. The race (and a similar one hiding behind it at the Broker level) have been eliminated.
I hope we will be putting out a defect fix 6.0.2 soon but can't give a date yet. Keep an eye on the this roadmap[3]. If you'd like to try the fix ahead of the release, please build [2] from branch [1]. Kind regards Keith. [1] https://svn.apache.org/viewvc/qpid/java/branches/6.0.x/ [2] https://cwiki.apache.org/confluence/display/qpid/Qpid+Java+Build+How+To [3] https://cwiki.apache.org/confluence/display/qpid/Java+Roadmap On 20 March 2016 at 21:50, Keith W <[email protected]> wrote: > A jira has been raised for this issue: > > QPID-7156 Possible Java Broker crash if connection is formed whilst > virtualhost is stopping > > I hope to have some time to look at this issue tomorrow. > > On 18 March 2016 at 08:57, Rob Godfrey <[email protected]> wrote: >> Hi Julien, >> >> it's definitely a bug, and your analysis is correct - that codepath occurs >> when a connection is first being established. After the initial exchange of >> credential information the client identifies the virtual host it wishes to >> use, at this point the broker "moves" the connection from a broker-wide >> thread pool to a thread pool for the given virtual host. It looks like >> there is some sort of race condition if this occurs just as the virtual >> host is stopping (once it has been stopped the connection is closed by the >> broker without it attempting to move thread pools). >> >> Thanks for the detailed bug report, and apologies that you have run into >> this. >> >> -- Rob >> >> On 18 March 2016 at 08:25, Julien Charon <[email protected]> wrote: >> >>> Hi, >>> >>> >>> Short update: I just realised that the broker only crashes in this >>> situation when a client tries to connect. >>> I had a client running that tried to (re-)connect to the broker regularly. >>> After stopping the client, I was able to start the broker, log in with the >>> web management console and start the virtual host. >>> After doing that, my client can connect again and everything works as >>> expected. >>> Nevertheless, a NPE being thrown in that situation looks like a bug to me. >>> >>> >>> Best regards, >>> >>> Julien >>> >>> Avitech GmbH >>> Engineering AxL >>> Tel.: +49 (0)7541/282-177 >>> Fax: +49 (0)7541/282-199 >>> e-mail: [email protected] >>> ________________________________________________ >>> Avitech GmbH >>> Principal Office: Bahnhofplatz 1 | 88045 Friedrichshafen | Germany >>> Court Registration: Amtsgericht Ulm | HRB 728293 >>> Geschäftsführer/Managing Director: Jon Joseba Goyarzu Caño >>> http://avitech.aero >>> >>> This message may contain confidential information and is intended only for >>> the individual named. If you are not the named addressee you should not >>> disseminate, distribute or copy this e-mail. Please notify the sender >>> immediately by e-mail if you have received this e-mail by mistake and >>> delete this e-mail from your system. >>> -----Ursprüngliche Nachricht----- >>> Von: Julien Charon [mailto:[email protected]] >>> Gesendet: Freitag, 18. März 2016 07:59 >>> An: [email protected] >>> Betreff: Java broker crashes after stopping vhost >>> >>> Hi, >>> >>> >>> I ran into a strange behaviour of the java broker I'd like to report. >>> I did the following: >>> - Change the flow control of a queue in the web management console. An >>> info tells me that I have to restart the vhost so that changes will have >>> effect >>> - Stop the vhost (default) in the web management console >>> - A popup shows that something is wrong I have to fix. There's only a >>> cancel button, the same popup shows again immediately after clicking the >>> button >>> - I see the following in the logs: >>> " >>> 2016-03-18 06:41:06,748 ERROR [IO-/172.24.102.24:51029] (o.a.q.s.Main) - >>> Uncaught exception, shutting down. >>> java.lang.NullPointerException: null >>> at >>> org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:142) >>> ~[qpid-broker-core-6.0.1.jar:6.0.1] >>> at >>> org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:505) >>> ~[qpid-broker-core-6.0.1.jar:6.0.1] >>> at >>> org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:338) >>> ~[qpid-broker-core-6.0.1.jar:6.0.1] >>> at >>> org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:87) >>> ~[qpid-broker-core-6.0.1.jar:6.0.1] >>> at >>> org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:463) >>> ~[qpid-broker-core-6.0.1.jar:6.0.1] >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) >>> ~[na:1.8.0_51] >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) >>> ~[na:1.8.0_51] >>> at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_51] " >>> - Trying to stop the broker gives me: No Qpid Brokers found running for >>> user: xxx >>> - When I try to start the broker again, I get the very same error log as >>> quoted above, I have no chance to start the broker Now what can I do to >>> solve that? I'll try to delete the work directory and see if it comes up >>> again. >>> If not, I'll have to re-install and configure the broker, but that would >>> not be a reasonable solution in a production environment... >>> Did I do something wrong or is that a bug? >>> >>> >>> Best regards, >>> Julien >>> >>> Avitech GmbH >>> Engineering AxL >>> Tel.: +49 (0)7541/282-177 >>> Fax: +49 (0)7541/282-199 >>> e-mail: [email protected]<mailto:[email protected]> >>> ________________________________________________ >>> Avitech GmbH >>> Principal Office: Bahnhofplatz 1 | 88045 Friedrichshafen | Germany Court >>> Registration: Amtsgericht Ulm | HRB 728293 Geschäftsführer/Managing >>> Director: Jon Joseba Goyarzu Caño http://avitech.aero<http://avitech.aero/ >>> > >>> >>> This message may contain confidential information and is intended only for >>> the individual named. If you are not the named addressee you should not >>> disseminate, distribute or copy this e-mail. Please notify the sender >>> immediately by e-mail if you have received this e-mail by mistake and >>> delete this e-mail from your system. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
