Provider must have features 'manages_symlinks' to set 'ensure' to 'link' shouldn't happen on Linux?

212 views
Skip to first unread message

Steph Gosling

unread,
Dec 30, 2013, 7:21:55 AM12/30/13
to puppet...@googlegroups.com
Hey all,

Done a bit of googling for this and haven't seen it yet.

I have one of about 120 nodes running the puppetlabs repo version 3.4.1 on CentOS 6 that has inexplicably started throwing this:

Error: Failed to apply catalog: Parameter ensure failed on File[/etc/localtime]: Provider must have features 'manages_symlinks' to set 'ensure' to 'link' at /etc/puppet/manifests/nodes/basenode.pp:198
Wrapped exception:
Provider must have features 'manages_symlinks' to set 'ensure' to 'link'

There are four nodes in totality that have the same node definition as this one, and the other 3 briefly had the same error but upgrading from 3.4.0 to 3.4.1 resolved it. Nevertheless the resource in question is inherited by every node so I'm at a loss what would break.

The resource is innocuous:

    file { "/etc/localtime":
        ensure  => link,
        target  => "/usr/share/zoneinfo/Europe/London",
    }

FWIW SELinux is disabled and if I comment this resource out it merely fails on the next ensure => link it comes across.

Debugging offers no clues either that I can see. These manifests haven't changed in several months and first broke on the following update (enforced by puppet):

Dec 20 04:36:53 nodename puppet-agent[22052]: (/Stage[main]/Puppet::Agent/Package[puppet]/ensure) ensure changed '3.3.2-1.el6' to '0:3.4.0-1.el6'

but as I say even with the official 3.4.1 it's falling flat on its face. Stopping the daemon, blowing away /var/lib/puppet and reassociating it with the master and the problem still persists.

Any suggested next steps? Thoughts gratefully appreciated!

Cheers,

Steph

Felix Frank

unread,
Dec 30, 2013, 6:54:36 PM12/30/13
to puppet...@googlegroups.com
Hi,

that's weird. Does this work?

puppet apply -e 'file { "/tmp/test": ensure => link, target =>
"/tmp/test-target" }'

If it yields the same error, please add -dv and share the debug output.

Thanks,
Felix

Steph Gosling

unread,
Dec 31, 2013, 4:16:27 AM12/31/13
to puppet...@googlegroups.com
Isn't it!

Applying that resource fails in the same way: as requested here's the output though debugging doesn't seem to add anything, which is a bit odd.

[root@nodename steph]# puppet apply --debug --verbose -e 'file { "/tmp/test": ensure => link, target =>
"/tmp/test-target" }'
Info: Loading facts in /var/lib/puppet/lib/facter/hostname.rb
Info: Loading facts in /var/lib/puppet/lib/facter/memory.rb
Info: Loading facts in /var/lib/puppet/lib/facter/enumerate_xen_disks.rb
Error: Parameter ensure failed on File[/tmp/test]: Provider must have features 'manages_symlinks' to set 'ensure' to 'link' at line 2

Wrapped exception:
Provider must have features 'manages_symlinks' to set 'ensure' to 'link'
[root@nodename steph]#

Running that on one of the functioning nodes and I get reams of debugging output as I'd expect so it looks like there's something curious with the environment, I just don't know what.

Jason Slagle

unread,
Dec 31, 2013, 8:33:25 AM12/31/13
to puppet...@googlegroups.com


On 12/31/2013 04:16 AM, Steph Gosling wrote:
> Isn't it!
>
> Applying that resource fails in the same way: as requested here's the
> output though debugging doesn't seem to add anything, which is a bit odd.
>
> [root@nodename steph]# puppet apply --debug --verbose -e 'file {
> "/tmp/test": ensure => link, target =>
> "/tmp/test-target" }'
> Info: Loading facts in /var/lib/puppet/lib/facter/hostname.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/memory.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/enumerate_xen_disks.rb
> Error: Parameter ensure failed on File[/tmp/test]: Provider must have
> features 'manages_symlinks' to set 'ensure' to 'link' at line 2
> Wrapped exception:
> Provider must have features 'manages_symlinks' to set 'ensure' to 'link'
> [root@nodename steph]#
>
> Running that on one of the functioning nodes and I get reams of
> debugging output as I'd expect so it looks like there's something
> curious with the environment, I just don't know what.

Out of curiosity, do you have both a package and the gem installed?
I've seen this behavior when the package got updated, but the gem was
still an older version. Also make sure you bounce the master if the
package got upgraded.

Jason

Steph Gosling

unread,
Jan 2, 2014, 3:59:29 AM1/2/14
to puppet...@googlegroups.com
Hi,

On Tuesday, December 31, 2013 1:33:25 PM UTC, jmslagle wrote:



Out of curiosity, do you have both a package and the gem installed?
I've seen this behavior when the package got updated, but the gem was
still an older version.  Also make sure you bounce the master if the
package got upgraded.

Jason

Jason you're a star. Gem said I had the puppet 3.2.1 gem installed as
well and on removal that sorted the issue. As to why that was there I'm
not sure but at this stage I'd put money on it being PEBKAC thing
rather than a packaging issue.

Thank you again for the suggestion.

Cheers,

Steph
Reply all
Reply to author
Forward
0 new messages