Issue #16447 has been updated by Charlie Sharpsteen.
Redmine Issue [#16447](http://projects.puppetlabs.com/issues/16447) has been migrated to JIRA: <https://tickets.puppetlabs.com/browse/MCO-110> ---------------------------------------- Bug #16447: agent registration issue with mongodb https://projects.puppetlabs.com/issues/16447#change-101435 * Author: chuck scott * Status: Accepted * Priority: Normal * Assignee: Richard Clamp * Category: * Target version: * Keywords: mcollective mongodb * Branch: * Affected mCollective version: 2.0.0 ---------------------------------------- In discussion with [R.I.Pienaar](https://groups.google.com/a/puppetlabs.com/forum/?fromgroups=#!topic/pe-users/87kqLkiTUMY) a registration issue with the [mcollective/agent/registration.rb](https://raw.github.com/puppetlabs/mcollective-plugins/master/agent/registration-mongodb/agent/registration.rb) plugin leads to the following stack trace: [chuck@stubhub-centos62-64-vm6 mcollective]$ tail -20 /var/log/mcollective.log D, [2012-09-17T10:27:11.904649 #3918] DEBUG -- : stomp.rb:197:in `receive' Waiting for a message from Stomp D, [2012-09-17T10:27:11.908196 #3918] DEBUG -- : registration.rb:96:in `handlemsg' Updated data for host stubhub-centos62-64-vm6.local with id in 0.00247311592102051s E, [2012-09-17T10:27:11.908369 #3918] ERROR -- : agents.rb:138:in `dispatch' Execution of registration failed: undefined method `[]' for nil:NilClass E, [2012-09-17T10:27:11.908454 #3918] ERROR -- : agents.rb:139:in `dispatch' /usr/libexec/mcollective/mcollective/agent/registration.rb:91:in `handlemsg' /usr/lib/ruby/site_ruby/1.8/mcollective/agents.rb:126:in `dispatch' /usr/lib/ruby/1.8/timeout.rb:67:in `timeout' /usr/lib/ruby/site_ruby/1.8/mcollective/agents.rb:125:in `dispatch' /usr/lib/ruby/site_ruby/1.8/mcollective/agents.rb:121:in `initialize' /usr/lib/ruby/site_ruby/1.8/mcollective/agents.rb:121:in `new' /usr/lib/ruby/site_ruby/1.8/mcollective/agents.rb:121:in `dispatch' /usr/lib/ruby/site_ruby/1.8/mcollective/runner.rb:82:in `agentmsg' /usr/lib/ruby/site_ruby/1.8/mcollective/runner.rb:55:in `run' /usr/lib/ruby/site_ruby/1.8/mcollective/runner.rb:50:in `loop' /usr/lib/ruby/site_ruby/1.8/mcollective/runner.rb:50:in `run' /usr/lib/ruby/site_ruby/1.8/mcollective/unix_daemon.rb:30:in `daemonize_runner' /usr/lib/ruby/site_ruby/1.8/mcollective/unix_daemon.rb:13:in `daemonize' /usr/lib/ruby/site_ruby/1.8/mcollective/unix_daemon.rb:5:in `fork' /usr/lib/ruby/site_ruby/1.8/mcollective/unix_daemon.rb:5:in `daemonize' /usr/lib/ruby/site_ruby/1.8/mcollective/unix_daemon.rb:20:in `daemonize_runner' /usr/sbin/mcollectived:43 we resolve the issue by applying the following fix: [chuck@stubhub-centos62-64-vm6 mcollective]$ diff -u /usr/libexec/mcollective/mcollective/agent/registration.rb /usr/libexec/mcollective/mcollective/agent/registration.rb.orig --- /usr/libexec/mcollective/mcollective/agent/registration.rb 2012-09-17 11:44:06.362358083 -0700 +++ /usr/libexec/mcollective/mcollective/agent/registration.rb.orig 2012-09-17 11:42:28.734447337 -0700 @@ -82,15 +82,13 @@ end by_fqdn = {:fqdn => req[:fqdn]} doc_id = nil before = Time.now.to_f begin doc = @coll.find_and_modify(:query => by_fqdn, :update => {'$set' => req}, :new => true) - if doc - doc_id = doc['_id'] - else - doc_id = @coll.insert(req, {:safe => true}) - end + doc_id = doc['_id'] rescue Mongo::OperationFailure doc_id = @coll.insert(req, {:safe => true}) ensure -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/groups/opt_out.