The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com
Handle STOMP errors better
|Status:||Needs Decision||Start date:||10/25/2010|
|Keywords:||Affected mCollective version:||0.4.10|
In cases where the Stomp connection fails for whatever reason we get exceptions like these:
W, [2010-04-21T11:11:48.994749 #3225] WARN -- : 3225 runner.rb:75:in `run': Failed to handle message: undefined method `body' for nil:NilClass - NoMethodError W, [2010-04-21T11:11:48.994878 #3225] WARN -- : 3225 runner.rb:76:in `run': /usr/share/mcollective/plugins/mcollective/connector/stomp.rb:64:in `receive' /usr/lib/ruby/1.8/mcollective/runner.rb:151:in `receive' /usr/lib/ruby/1.8/mcollective/runner.rb:52:in `run' /usr/lib/ruby/1.8/mcollective/runner.rb:50:in `loop' /usr/lib/ruby/1.8/mcollective/runner.rb:50:in `run' /usr/sbin/mcollectived:49 /usr/lib/ruby/1.8/mcollective/runner.rb:38:in `daemonize' /usr/lib/ruby/1.8/mcollective/runner.rb:30:in `fork' /usr/lib/ruby/1.8/mcollective/runner.rb:30:in `daemonize' /usr/sbin/mcollectived:40
Ideal behavior would be to get a usable error message saying you gave the wrong password.
This is problematic in that the Stomp gem prefers to do all its own error handling, reconnection handling etc and in many cases just dont raise errors.
I can catch this specific error but later on then errors just get logged to STDERR by the gem and no exceptions raised for publish errors. Handling the error above and exiting or at least logging a useful hint about the problem would be better