Puppet agent errors - "Could not intern_multiple from text/pson"

RESOLVED FIXED

Status

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: dustin, Assigned: dustin)

Tracking

Details

The first:

 Jun 09 07:12:40 talos-linux64-ix-077 puppet-agent: (/File[/var/lib/puppet/facts.d]) Failed to generate additional resources using 'eval_generate': Could not intern_multiple from text/pson: Paths must be fully qualified 

and they repeat for what looks like every agent run since.  Seems unrelated to the agent system.

This coincides with some switch reboots, but it's hard to see how those would be related.
Correction, it stopped 10 minutes later; last one is:

 Jun 09 07:21:40 t-snow-r4-0087 puppet-agent: (/File[/var/lib/puppet/facts.d]) Failed to generate additional resources using 'eval_generate': Could not intern_multiple from text/pson: Paths must be fully qualified
I haven't seen more of these, so it may have been some temporary glitch related to the switch work. Very hard to tell.
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → WORKSFORME
We just got another spate of these, after xionox confirmed that the switch upgrades were done.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
There seem to be three types of errors we're seeing all at once:

yosemite: 

Tue Jun 09 08:28:05 -0700 2015 Puppet (err): Could not retrieve catalog from remote server: Net::ReadTimeout
Tue Jun 09 08:28:05 -0700 2015 Puppet (err): Could not retrieve catalog; skipping run

Windows:

Tue Jun 09 08:36:08 -0700 2015 Puppet (err): Could not retrieve local facts: failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
    HRESULT error code:0x8007045b
      A system shutdown is in progress.
Tue Jun 09 08:36:08 -0700 2015 Puppet (err): Failed to apply catalog: Could not retrieve local facts: failed to parse display name of moniker `winmgmts:{impersonationLevel=impersonate}!//./root/cimv2'
    HRESULT error code:0x8007045b
      A system shutdown is in progress.


Other OSes in scl3:

Tue Jun 09 08:31:06 -0700 2015 /File[/var/lib/puppet/facts.d] (err): Failed to generate additional resources using 'eval_generate': Could not intern_multiple from text/pson: Paths must be fully qualified
Tue Jun 09 08:31:26 -0700 2015 /File[/var/lib/puppet/facts.d] (err): Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet1.srv.releng.scl3.mozilla.com/pluginfacts

(sometimes that's releng-puppet2 as well, so it's not just one puppet host).
Only the third one worries me.  The "spate" was

 Jun 09 08:16:23 foopy63.p4.releng.scl3.mozilla.com puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet2.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:28:15 t-snow-r4-0014 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet2.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:29:46 talos-linux64-ix-026 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet2.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:30:21 foopy76.p6.releng.scl3.mozilla.com puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet1.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:30:22 t-snow-r4-0143 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet1.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:30:22 t-snow-r4-0077 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet1.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:31:02 talos-linux32-ix-025 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet2.srv.releng.scl3.mozilla.com/pluginfacts
Jun 09 08:31:26 bld-lion-r5-091 puppet-agent: (/File[/var/lib/puppet/facts.d]) Could not evaluate: Could not retrieve information from environment production source(s) puppet://releng-puppet1.srv.releng.scl3.mozilla.com/pluginfacts 

interesting that it's limited to scl3.  I might suspect filesystem corruption due to filer failure, but I don't see any evidence of that in the kernel logs.

The "paths must be fully qualified" bit is the most mysterious.  It comes (no thanks to puppet for not giving this info) from lib/puppet/file_serving/base.rb:

 53   # Set our base path.
 54   attr_reader :path
 55   def path=(path)
 56     raise ArgumentError.new("Paths must be fully qualified") unless Puppet::FileServing::Base.absolute?(path)
 57     @path = path
 58   end

so somewhere, something is setting File{path: ..} to a partial path.  Something in the automatic fact synchronization code.
I patched that method on releng-puppet2.srv.releng.scl3:


  # Set our base path.
  attr_reader :path
  def path=(path)
    raise ArgumentError.new("Paths must be fully qualified - got #{path} at #{caller.inspect}") unless Puppet::FileServing::Base.absolute?(path)
    @path = path
  end

let's see what we find.
Nothing for a few hours now.. I'm guessing this was due to an EOF related to the switch work, and puppet is hiding the EOF through multiple layers of error handling.  I've reverted the code change (since I'm not totally sure it won't fail).
Status: REOPENED → RESOLVED
Last Resolved: 4 years ago4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.