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
-~----------~----~----~----~------~----~------~--~---