Issue #2770 has been updated by Peter Meier.

Assigned to changed from Peter Meier to Markus Roberts

so I dumped the response.body I got from the master, and then tried to debug 
the @PSON.parse@ from within irb.
I put a puts edge on 
@/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:417@ and this 
what I got:

<pre>
[...]
sourceLine[enable_puppetd_on_boot]targetExec[perl -ni -e 'print if $_ ne "if [ 
-x /usr/local/bin/puppetd ]; then echo -n " puppetd"; /usr/local/bin/puppetd; fi
";' '/etc/rc.local']
ArgumentError: Could not convert from pson: Could not find relationship target 
''
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:439:in 
`edge_from_pson'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:418:in `from_pson'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:416:in `each'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:416:in `from_pson'
        from /usr/local/lib/ruby/site_ruby/1.8/puppet/util/pson.rb:11:in 
`pson_create'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:256:in 
`parse_object'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:97:in 
`parse'
        from 
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/common.rb:133:in `parse'
        from (irb):3
</pre>

This is the first kind of resource like that, but there are further. I tried to 
load the dumped catalog as well on other systems and it failed to parse there 
as well. So imho it is a general problem of pson.

The resource in question is the following:


http://git.puppet.immerda.ch/?p=module-puppet.git;a=blob;f=manifests/openbsd.pp;h=d08a50bdc4738c6cbd630d19659bc6328a7844e8;hb=e80e95edb9007440faa9251a6e6621116783ed91#l9

which is this define:

http://git.puppet.immerda.ch/?p=module-openbsd.git;a=blob;f=manifests/rc_local.pp;h=7f2ea8bb32d41c36fb938d8e06fdd83209b5f21d;hb=59d3fa06836d8d07109908ac1894002fde8e0f07

and the line in question is this one:

http://git.puppet.immerda.ch/?p=module-openbsd.git;a=blob;f=manifests/rc_local.pp;h=7f2ea8bb32d41c36fb938d8e06fdd83209b5f21d;hb=59d3fa06836d8d07109908ac1894002fde8e0f07

As this worked on 0.24.8 and seems to be a valid puppet statement I would say 
that it is a pson problem.

If you need any further infos, please let me know.
----------------------------------------
Bug #2770: unable to parse json on openbsd
http://projects.reductivelabs.com/issues/2770

Author: Peter Meier
Status: Needs more information
Priority: Normal
Assigned to: Markus Roberts
Category: serialization
Target version: 0.25.2
Affected version: 0.25.1
Keywords: 
Branch: 


Switching on openbsd 4.3 to 0.25.1 I get as first this warning printed to 
stderr:

<pre>
Failed to load feature test for pson: iconv couldn't be loaded, which is 
required for UTF-8/UTF-16 conversions
</pre>

I then installed ruby-iconv to have iconv support present for ruby (@ruby 1.8.6 
(2007-09-24 patchlevel 111) [i386-openbsd4.3]@ btw.) however every run fails 
with the following error:

<pre>
info: Loading facts in xen
debug: Format s not supported for Puppet::Resource::Catalog; has not 
implemented method 'from_s'
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:438:in 
`edge_from_pson'
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:417:in `from_pson'
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:416:in `each'
/usr/local/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:416:in `from_pson'
/usr/local/lib/ruby/site_ruby/1.8/puppet/util/pson.rb:11:in `pson_create'
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:256:in 
`parse_object'
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:97:in 
`parse'
/usr/local/lib/ruby/site_ruby/1.8/puppet/external/pson/common.rb:133:in `parse'
/usr/local/lib/ruby/site_ruby/1.8/puppet/network/formats.rb:146:in `intern'
/usr/local/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:13:in `send'
/usr/local/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:13:in 
`protect'
/usr/local/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:28:in 
`intern'
/usr/local/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:97:in 
`convert_from'
/usr/local/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:50:in `deserialize'
/usr/local/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:69:in `find'
/usr/local/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:198:in `find'
/usr/local/lib/ruby/site_ruby/1.8/puppet/indirector.rb:51:in `find'
/usr/local/lib/ruby/site_ruby/1.8/puppet/configurer.rb:94:in `retrieve_catalog'
/usr/local/lib/ruby/site_ruby/1.8/puppet/util.rb:417:in `thinmark'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/usr/local/lib/ruby/site_ruby/1.8/puppet/util.rb:416:in `thinmark'
/usr/local/lib/ruby/site_ruby/1.8/puppet/configurer.rb:93:in `retrieve_catalog'
/usr/local/lib/ruby/site_ruby/1.8/puppet/configurer.rb:145:in `run'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/local/lib/ruby/1.8/sync.rb:229:in `synchronize'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent.rb:130:in `with_client'
/usr/local/lib/ruby/site_ruby/1.8/puppet/agent.rb:51:in `run'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application/puppetd.rb:103:in `onetime'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `send'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `run_command'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `exit_on_fail'
/usr/local/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
/usr/local/sbin/puppetd:159
err: Could not retrieve catalog from remote server: Could not intern from pson: 
Could not convert from pson: Could not find relationship target ''
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
</pre>

Runnning puppet without ruby-iconv installed works fine so far. Except that the 
warning is printed to stderr, as I think it should rather be a puppet warning, 
shouldn't it? -> I can file a second bug if it should rather be a puppet 
warning.


-- 
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://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to