Puppet: System Administration Automated

Support

Ticket #947 (assigned defect)

Opened 1 year ago

Last modified 7 months ago

pluginsync failure: can't convert nil into String in lib/puppet/network/handler/fileserver.rb:797

Reported by: DavidS Assigned to: plathrop (accepted)
Priority: high Milestone: misspiggy
Component: server Version: 0.24.4
Severity: major Keywords:
Cc: Triage Stage: Needs more info
Attached Patches: Insufficient Complexity: Unknown

Description

When trying to pluginsync with default parameters, current HEAD ([8eecbe54c96cec0de492e7ae77211637b65057e8]) puppetmaster fails with this trace:

debug: mount[plugins]: Listing /plugins for ic.black.co.at
./lib/puppet/network/handler/fileserver.rb:797:in `join'
./lib/puppet/network/handler/fileserver.rb:797:in `file_path'
./lib/puppet/network/handler/fileserver.rb:807:in `reclist'
./lib/puppet/network/handler/fileserver.rb:730:in `list'
./lib/puppet/network/handler/fileserver.rb:152:in `list'
/usr/share/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:147:in `to_proc'
./lib/puppet/network/xmlrpc/processor.rb:52:in `call'
./lib/puppet/network/xmlrpc/processor.rb:52:in `protect_service'
./lib/puppet/network/xmlrpc/processor.rb:85:in `setup_processor'
/usr/lib/ruby/1.8/xmlrpc/server.rb:336:in `call'
/usr/lib/ruby/1.8/xmlrpc/server.rb:336:in `dispatch'
/usr/lib/ruby/1.8/xmlrpc/server.rb:323:in `each'
/usr/lib/ruby/1.8/xmlrpc/server.rb:323:in `dispatch'
/usr/lib/ruby/1.8/xmlrpc/server.rb:366:in `call_method'
/usr/lib/ruby/1.8/xmlrpc/server.rb:378:in `handle'
./lib/puppet/network/xmlrpc/processor.rb:44:in `process'
./lib/puppet/network/xmlrpc/webrick_servlet.rb:68:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
./lib/puppet.rb:336:in `start'
./lib/puppet.rb:187:in `newthread'
./lib/puppet.rb:186:in `initialize'
./lib/puppet.rb:186:in `new'
./lib/puppet.rb:186:in `newthread'
./lib/puppet.rb:334:in `start'
./lib/puppet.rb:333:in `each'
./lib/puppet.rb:333:in `start'
./bin/puppetmasterd:281
err: Could not call: can't convert nil into String

I have prodded around the PluginMount class and I think the basic problem is that the data structure returned by Mount.list is *beep*. This amongst other things causes relpath = abspath.sub(%r{^#{basepath}}, '') in lib/puppet/network/handler/fileserver.rb:PluginMount:reclist() to not work in all cases, especially when the basepath changes from one module to the next.

I have created a little patch that cleans up the Plugin Mount? class by overriding list instead of reclist and calling the original reclist for each module in turn. This surely needs more love to remove duplicates, but it does work on my puppetmaster now. Please find the patch in the rest/fix-plugins-mount branch of my repo at git://git.black.co.at/puppet-bugfixes

Change History

12/03/07 19:19:37 changed by DavidS

  • priority changed from normal to high.
  • severity changed from normal to major.
  • milestone set to misspiggy.

12/06/07 17:50:07 changed by luke

  • stage changed from Unreviewed to Accepted.

12/11/07 18:14:48 changed by luke

  • status changed from new to closed.
  • resolution set to fixed.

I've verified that this works and merged the patch in.

05/29/08 03:23:03 changed by jamtur01

  • status changed from closed to reopened.
  • resolution deleted.

05/29/08 06:05:01 changed by plathrop

  • owner changed from community to plathrop.
  • status changed from reopened to new.

I had James reopen this one as I ran into it again. I'm working on steps to reproduce.

05/29/08 06:05:40 changed by plathrop

  • status changed from new to assigned.
  • stage changed from Accepted to Needs more info.
  • patch changed from Code to Insufficient.

05/29/08 06:06:10 changed by plathrop

  • version set to 0.24.4.