voxpupuli/puppet-mcollective

I don't think this works on Ubuntu 12.04.

kwolf-zz opened this issue · 4 comments

We're running Puppetmasters on Ubuntu 12.04 and they happen to be mcollective clients as well. This module is setting the heartbeat option:

plugin.activemq.heartbeat_interval = 30

Which doesn't seem to be working with the version of the ruby-stomp package that's distributed.

mco find

The find application failed to run, use -v for full error backtrace details: Could not connect to ActiveMQ Server: Setting STOMP 1.1 properties like heartbeat intervals require at least version 1.2.10 of the STOMP gem

ruby-stomp

aptitude show ruby-stomp
Package: ruby-stomp                      
State: installed
Automatically installed: no
Version: 1.2.2-1
Priority: extra
Section: misc
Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
Architecture: all
Uncompressed Size: 287 k
Depends: ruby | ruby-interpreter
Breaks: libstomp-ruby (< 1.1.9-1~), libstomp-ruby (< 1.1.9-1~), libstomp-ruby-doc (< 1.1.9-1~), libstomp-ruby-doc (< 1.1.9-1~),
        libstomp-ruby1.8 (< 1.1.9-1~), libstomp-ruby1.8 (< 1.1.9-1~), libstomp-ruby1.9.1 (< 1.1.9-1~), libstomp-ruby1.9.1 (< 1.1.9-1~)
Replaces: libstomp-ruby (< 1.1.9-1~), libstomp-ruby (< 1.1.9-1~), libstomp-ruby-doc (< 1.1.9-1~), libstomp-ruby-doc (< 1.1.9-1~),
          libstomp-ruby1.8 (< 1.1.9-1~), libstomp-ruby1.8 (< 1.1.9-1~), libstomp-ruby1.9.1 (< 1.1.9-1~), libstomp-ruby1.9.1 (< 1.1.9-1~)
Provides: libstomp-ruby, libstomp-ruby-doc, libstomp-ruby1.8, libstomp-ruby1.9.1
Description: Ruby client for the stomp messaging protocol
 Stomp is a text-oriented wire protocol for messaging (MOM/MQ/JMS) type systems. This library provides two useful interfaces, a low- level
 class, Stomp::Connection, which is a basic protocol implementation, and Stomp::Client, which is designed as a higher level convenience
 API.
Homepage: https://github.com/morellon/stomp

It seems that the mcollecitive package and plugins depend on this package. We have v1.3.5 of the stomp gem installed, but that's not what mco appears to be using.

There's currently no way in the module to suppress the heartbeat option.

hi,
Why do you think this doesn't work? have you tested it and could provide any error messages?

I hit enter and posted a blank body. It's been updated. My bad.

I can second this. The MCollective server, client will not work on Ubuntu 12.04 with SSL activated.

E, [2016-09-27T13:28:42.487939 #26654] ERROR -- : activemq.rb:377:inssl_parameters' Failed to set full SSL verified mode: RuntimeError: Stomp gem >= 1.2.2 is needed
E, [2016-09-27T13:28:42.488112 #26654] ERROR -- : runner.rb:107:in main_loop' A failure occurred in the MCollective runner. E, [2016-09-27T13:28:42.488282 #26654] ERROR -- : runner.rb:108:inmain_loop' Could not connect to ActiveMQ Server: Stomp gem >= 1.2.2 is needed
E, [2016-09-27T13:28:42.488358 #26654] ERROR -- : runner.rb:109:in main_loop' /usr/lib/ruby/vendor_ruby/mcollective/connector/activemq.rb:301:inconnect'
/usr/lib/ruby/vendor_ruby/mcollective/runner.rb:164:in receiver_thread' /usr/lib/ruby/vendor_ruby/mcollective/runner.rb:142:instart_receiver_thread'
/usr/lib/ruby/vendor_ruby/mcollective/runner.rb:140:in initialize' /usr/lib/ruby/vendor_ruby/mcollective/runner.rb:140:innew'
/usr/lib/ruby/vendor_ruby/mcollective/runner.rb:140:in start_receiver_thread' /usr/lib/ruby/vendor_ruby/mcollective/runner.rb:71:inmain_loop'
/usr/lib/ruby/vendor_ruby/mcollective/unix_daemon.rb:60:in daemonize_runner' /usr/lib/ruby/vendor_ruby/mcollective/unix_daemon.rb:13:indaemonize'
/usr/lib/ruby/vendor_ruby/mcollective/unix_daemon.rb:5:in fork' /usr/lib/ruby/vendor_ruby/mcollective/unix_daemon.rb:5:indaemonize'
/usr/lib/ruby/vendor_ruby/mcollective/unix_daemon.rb:20:in daemonize_runner' /usr/sbin/mcollectived:74

You'll need to upgrade ruby-stomp to get this to work. What about a check on the ruby-stomp version if SSL is enabled?

The ruby-stomp problem has been around for a while. I remember opening issue https://tickets.puppetlabs.com/browse/MODULES-459 and sending PR #121 to allow specifying the ruby-stomp version. We usually set it to "latest".