I've been hitting this issue for a long time. well over a year and I guess it's time to start pushing it to try to find the root cause. I've seen this reported several times in the past but I've never seen a resolution found for this exact problems. There are other root causes for pson errors that have been resolved, but not for the ones describing my problem.
What we're finding is that often times the catalog is getting chopped off at some seemingly random point in the file. If you run puppet agent multiple times in a row each time it will cut off at always different parts.
Debug: node supports formats: b64_zlib_yaml pson raw yaml; using pson
Debug: Using cached certificate for ca
Debug: Using cached certificate_revocation_list for ca
Info: Retrieving plugin
Debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using pson
Debug: Finishing transaction 70037484276920
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Debug: catalog supports formats: b64_zlib_yaml dot pson raw yaml; using pson
Error: Could not retrieve catalog from remote server: Could not intern from pson: expected value in object at '"Ssh_authorized_key['!
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
It's not uncommon to run this 'puppet agent -t' 8 times in a row, and getting a different quoted error part until one time it completes.
Here is a repro where I ran it one after another, the first 2 worked, 3 failed, and the 6th worked.
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Info: Applying configuration version '1366164490'
Notice: Finished catalog run in 13.20 seconds
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Info: Applying configuration version '1366164490'
Notice: Finished catalog run in 12.32 seconds
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Error: Could not retrieve catalog from remote server: Could not intern from pson: expected ',' or ']' in array at ''!
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Error: Could not retrieve catalog from remote server: Could not intern from pson: expected value in object at '"File[/usr/lib64/ope'!
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Error: Could not retrieve catalog from remote server: Could not intern from pson: expected value in object at '"Class[Os-p'!
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
[root@host0 ~]# puppet agent -t
Info: Loading facts in /var/lib/puppet/lib/facter/serialports.rb
Info: Applying configuration version '1366164490'
Notice: Finished catalog run in 13.34 seconds
[root@host0 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@host0 ~]# rpm -qa|grep puppet
puppet-3.1.1-1.el6.noarch
[root@host0 ~]# cat /etc/yum.repos.d/puppet.repo
[puppet]
name=Puppet Packages for Enterprise Linux $releasever - $basearch
enabled=1
gpgcheck=1
gpgkey=file://
Please let me know if there is a resolution for this and I've missed it. and if there is no resolution I'll be happy to gather more data as instructed. One question that I do have is how to I see the contents of what is sent over pson? Specifically to get a handle on what is happening here: