Issue #3083 has been updated by James Turnbull.

Status changed from Re-opened to Accepted
Assigned to changed from Alexey Degtyarev to Markus Roberts
Priority changed from Normal to High

I'm seeing the same issue and it's not DNS.

On the client:

<pre>
info: Retrieving plugin
debug: Using cached certificate for ca, good until Wed Mar 25 04:57:53 UTC 2015
debug: Using cached certificate for dxul.puppetlabs.com, good until Wed Mar 25 
04:57:53 UTC 2015
debug: Using cached certificate_revocation_list for ca, good until 
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; 
using pson
debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; 
using pson
/usr/lib/ruby/1.8/puppet/parameter.rb:401:in `fail'
/usr/lib/ruby/1.8/puppet/type/file/source.rb:160:in `init_metadata'
/usr/lib/ruby/1.8/puppet/util/cacher.rb:106:in `send'
/usr/lib/ruby/1.8/puppet/util/cacher.rb:106:in `cached_value'
/usr/lib/ruby/1.8/puppet/util/cacher.rb:46:in `metadata'
/usr/lib/ruby/1.8/puppet/type/file/source.rb:111:in `copy_source_values'
/usr/lib/ruby/1.8/puppet/type/file.rb:630:in `retrieve'
/usr/lib/ruby/1.8/puppet/type.rb:726:in `evaluate'
/usr/lib/ruby/1.8/puppet/transaction.rb:62:in `apply'
/usr/lib/ruby/1.8/puppet/transaction.rb:251:in 
`eval_children_and_apply_resource'
/usr/lib/ruby/1.8/puppet/util.rb:418:in `thinmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/1.8/puppet/util.rb:417:in `thinmark'
/usr/lib/ruby/1.8/puppet/transaction.rb:250:in 
`eval_children_and_apply_resource'
/usr/lib/ruby/1.8/puppet/transaction.rb:207:in `eval_resource'
/usr/lib/ruby/1.8/puppet/transaction.rb:296:in `evaluate'
/usr/lib/ruby/1.8/puppet/util.rb:418:in `thinmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/1.8/puppet/util.rb:417:in `thinmark'
/usr/lib/ruby/1.8/puppet/transaction.rb:295:in `evaluate'
/usr/lib/ruby/1.8/puppet/transaction.rb:289:in `collect'
/usr/lib/ruby/1.8/puppet/transaction.rb:289:in `evaluate'
/usr/lib/ruby/1.8/puppet/resource/catalog.rb:142:in `apply'
/usr/lib/ruby/1.8/puppet/configurer/downloader.rb:32:in `evaluate'
/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
/usr/lib/ruby/1.8/puppet/configurer/downloader.rb:31:in `evaluate'
/usr/lib/ruby/1.8/puppet/configurer/plugin_handler.rb:12:in `download_plugins'
/usr/lib/ruby/1.8/puppet/configurer.rb:85:in `prepare'
/usr/lib/ruby/1.8/puppet/configurer.rb:152:in `run'
/usr/lib/ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/1.8/puppet/agent/locker.rb:21:in `lock'
/usr/lib/ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/1.8/sync.rb:230:in `synchronize'
/usr/lib/ruby/1.8/puppet/agent.rb:53:in `run'
/usr/lib/ruby/1.8/puppet/agent.rb:134:in `with_client'
/usr/lib/ruby/1.8/puppet/agent.rb:51:in `run'
/usr/lib/ruby/1.8/puppet/agent.rb:106
/usr/lib/ruby/1.8/puppet/external/event-loop/signal-system.rb:97:in `call'
/usr/lib/ruby/1.8/puppet/external/event-loop/signal-system.rb:97:in `__signal__'
/usr/lib/ruby/1.8/puppet/external/event-loop/signal-system.rb:97:in `each'
/usr/lib/ruby/1.8/puppet/external/event-loop/signal-system.rb:97:in `__signal__'
(eval):2:in `signal'
/usr/lib/ruby/1.8/puppet/external/event-loop/event-loop.rb:321:in `sound_alarm'
/usr/lib/ruby/1.8/puppet/agent.rb:110:in `start'
/usr/lib/ruby/1.8/puppet/daemon.rb:127:in `start'
/usr/lib/ruby/1.8/puppet/application/puppetd.rb:116:in `main'
/usr/lib/ruby/1.8/puppet/application.rb:226:in `send'
/usr/lib/ruby/1.8/puppet/application.rb:226:in `run_command'
/usr/lib/ruby/1.8/puppet/application.rb:217:in `run'
/usr/lib/ruby/1.8/puppet/application.rb:306:in `exit_on_fail'
/usr/lib/ruby/1.8/puppet/application.rb:217:in `run'
/usr/sbin/puppetd:159
err: /File[/var/lib/puppet-demo/lib]: Failed to retrieve current state of 
resource: Could not retrieve information from source(s) 
puppet://dxul.puppetlabs.com/plugins
</pre>

On the master:

<pre>
info: access[^/catalog/([^/]+)$]: allowing 'method' find
info: access[^/catalog/([^/]+)$]: allowing $1 access
info: access[/certificate_revocation_list/ca]: allowing 'method' find
info: access[/certificate_revocation_list/ca]: allowing * access
info: access[/report]: allowing 'method' save
info: access[/report]: allowing * access
info: access[/file]: allowing * access
info: access[/certificate/ca]: adding authentication no
info: access[/certificate/ca]: allowing 'method' find
info: access[/certificate/ca]: allowing * access
info: access[/certificate/]: adding authentication no
info: access[/certificate/]: allowing 'method' find
info: access[/certificate/]: allowing * access
info: access[/certificate_request]: adding authentication no
info: access[/certificate_request]: allowing 'method' find
info: access[/certificate_request]: allowing 'method' save
info: access[/certificate_request]: allowing * access
info: access[/]: adding authentication any
info: Could not find filesystem info for file 'plugins' in environment 
production
info: Could not find file_metadata for 'plugins'
info: Expiring the node cache of dxul.puppetlabs.com
info: Not using expired node for dxul.puppetlabs.com from cache; expired at Sat 
Mar 27 05:29:23 +0000 2010
info: Caching node for dxul.puppetlabs.com
notice: Compiled catalog for dxul.puppetlabs.com in 0.00 seconds
</pre>

Changing:
<pre>
pluginsync=true
</pre>
<pre>
pluginsync=false
</pre>

Makes the error go away.
----------------------------------------
Bug #3083: Failed to retrieve current state of resource: undefined method 
`closed?' for nil:NilClass
http://projects.puppetlabs.com/issues/3083

Author: Alexey Degtyarev
Status: Accepted
Priority: High
Assigned to: Markus Roberts
Category: 
Target version: 0.25.5
Affected version: 0.25.4rc1
Keywords: undefined method `closed?' for nil:NilClass, 
Could not retrieve file metadata
Branch: http://github.com/MarkusQ/puppet/tree/ticket/0.25.x/3083


After upgrade from 0.24.8 to 0.25.x clients begun to log error:

<pre>
Failed to retrieve current state of resource: undefined method `closed?' for 
nil:NilClass Could not retrieve file metadata for 
puppet:///aliases/default/aliases: undefined method `closed?' for nil:NilClass 
at /usr/local/etc/puppet/modules/aliases/manifests/init.pp:18
</pre>

The error appears only on resources having sourced with multiple destinations 
(line counters preserved):

  8 class aliases {
  9 
 10         file { "/etc/mail/aliases":
 11                 ensure  => file,
 12                 notify  => Exec["newaliases"],
 13                 owner   => "root",
 14                 group   => "mail",
 15                 mode    => 0440,
 16                 source  => [ "puppet:///aliases/${fqdn}/aliases",
 17                                 "puppet:///aliases/default/aliases" ];
 18         }
 19 
 20         exec { "newaliases":
 21                 require         => File["/etc/mail/aliases"],
 22                 refreshonly     => true,
 23                 command         => "/usr/bin/newaliases";
 24         }
 25 }

Those errors appears randomly through all classes with similar resources within 
node definition:

The client log:

<pre>
Jan 17 14:11:30 net-mgmt-1 puppetd[80881]: Starting Puppet client version 0.25.2
Jan 17 14:11:46 net-mgmt-1 puppetd[80881]: Finished catalog run in 9.70 seconds
Jan 17 14:12:58 net-mgmt-1 puppetd[80881]: Finished catalog run in 10.35 seconds
Jan 17 14:14:10 net-mgmt-1 puppetd[80881]: Finished catalog run in 10.50 seconds
Jan 17 14:15:12 net-mgmt-1 puppetd[80881]: (//sysctl/File[/etc/sysctl.conf]) 
Failed to retrieve current state of resource: undefined method `closed?' for 
nil:NilClass Could not retrieve file metadata for 
puppet:///sysctl/default/sysctl.conf: undefined method `closed?' for 
nil:NilClass at /usr/local/etc/puppet/modules/sysctl/manifests/init.pp:17
Jan 17 14:15:12 net-mgmt-1 puppetd[80881]: (//sysctl/Exec[sysctl apply]) 
Dependency file[/etc/sysctl.conf] has 1 failures
Jan 17 14:15:12 net-mgmt-1 puppetd[80881]: (//sysctl/Exec[sysctl apply]) 
Skipping because of failed dependencies
Jan 17 14:15:22 net-mgmt-1 puppetd[80881]: Finished catalog run in 10.33 seconds
Jan 17 14:16:26 net-mgmt-1 puppetd[80881]: 
(//ntpdate/File[/etc/rc.conf.d/ntpdate]) Failed to retrieve current state of 
resource: undefined method `closed?' for nil:NilClass Could not retrieve file 
metadata for puppet:///ntpdate/default/ntpdate.rc: undefined method `closed?' 
for nil:NilClass at /usr/local/etc/puppet/modules/ntpdate/manifests/init.pp:16
Jan 17 14:16:34 net-mgmt-1 puppetd[80881]: Finished catalog run in 10.39 seconds

</pre>

The master node log:

<pre>
Jan 17 14:11:35 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.19 seconds
Jan 17 14:12:46 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.15 seconds
Jan 17 14:13:58 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.19 seconds
Jan 17 14:15:11 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.19 seconds
Jan 17 14:16:23 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.14 seconds
Jan 17 14:17:35 puppet-1 puppetmasterd[79612]: Compiled catalog for 
net-mgmt-1.renatasystems.org in 0.19 seconds

</pre>
As it can seen - sometimes catalog finished without errors, sometimes it fails 
on sysctl module, sometimes not but fails on another ("ntpdate") module and so 
on.. The tracebacks from client and master nodes attached.

I've tried up to 0.25.4rc1 versions on both master and client nodes, no effect, 
the same error exists.


-- 
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://projects.puppetlabs.com/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