Puppet 3.4.1: Could not find relationship target

1,431 views
Skip to first unread message

Sergey Arlashin

unread,
Feb 1, 2014, 4:22:52 PM2/1/14
to puppet...@googlegroups.com
Hi!

I've just run into a problem. Puppet agent fails with the following message:

Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not convert from pson: Could not find relationship target "File[]"

and then refuses to proceed further.

Then I started it with --debug --trace and got this:

Info: Loading facts in /var/lib/puppet/lib/facter/homedir.rb
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: catalog supports formats: pson b64_zlib_yaml yaml dot raw
Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not convert from pson: Could not find relationship target "File[]"
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:361:in `edge_from_pson'
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:340:in `block in from_pson'
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:339:in `each'
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:339:in `from_pson'
/usr/lib/ruby/vendor_ruby/puppet/util/pson.rb:11:in `pson_create'
/usr/lib/ruby/vendor_ruby/puppet/external/pson/pure/parser.rb:305:in `parse_object'
/usr/lib/ruby/vendor_ruby/puppet/external/pson/pure/parser.rb:98:in `parse'
/usr/lib/ruby/vendor_ruby/puppet/external/pson/common.rb:133:in `parse'
/usr/lib/ruby/vendor_ruby/puppet/network/formats.rb:148:in `intern'
/usr/lib/ruby/vendor_ruby/puppet/network/format_support.rb:12:in `convert_from'
/usr/lib/ruby/vendor_ruby/puppet/indirector/rest.rb:229:in `deserialize_find'
/usr/lib/ruby/vendor_ruby/puppet/indirector/rest.rb:104:in `find'
/usr/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:201:in `find'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:256:in `block in retrieve_new_catalog'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:327:in `block in thinmark'
/usr/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:326:in `thinmark'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:255:in `retrieve_new_catalog'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:69:in `retrieve_catalog'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:109:in `prepare_and_retrieve_catalog'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:172:in `run'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:44:in `block (4 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/agent/locker.rb:20:in `lock'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:44:in `block (3 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:114:in `with_client'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:41:in `block (2 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:79:in `run_in_fork'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:40:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:179:in `call'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_run'
/usr/lib/ruby/vendor_ruby/puppet/agent.rb:38:in `run'
/usr/lib/ruby/vendor_ruby/puppet/application/agent.rb:355:in `onetime'
/usr/lib/ruby/vendor_ruby/puppet/application/agent.rb:321:in `run_command'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `block (2 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:470:in `plugin_hook'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:468:in `exit_on_fail'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:137:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:91:in `execute'
/usr/bin/puppet:4:in `<main>'
Debug: Using cached catalog for dev01.site

So this hasn't clarified the situation either.

Could anyone please tell how one can debug this sort of errors?

Thanks in advance.

--
Best regards,
Sergey Arlashin




Sergey Arlashin

unread,
Feb 1, 2014, 4:51:52 PM2/1/14
to puppet...@googlegroups.com
Oh, I found what caused this error. There was a mistake in one of my modules - file {'': … } with empty name. But I was able to find it only after I'd run 'puppet apply' locally via vagrant. Puppet apply showed the name of faulty module and the exact line number.

Error: Parameter path failed on File[]: File paths must be fully qualified, not '' at /tmp/vagrant-puppet/modules-0/gitolite/manifests/init.pp:35

And puppet agent
puppet agent --server puppet.site --verbose --no-daemonize --onetime --debug --trace didn't. I found only this:

Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not convert from pson: Could not find relationship target "File[]"

in both puppet agent output and puppetmaster log.

So the question is - is it a bug? Or may be it is a normal behaviour?
Reply all
Reply to author
Forward
0 new messages