Ask Your Question

error after stdlib update

asked 2015-10-19 08:48:31 -0500

slk gravatar image

updated 2015-10-19 08:48:48 -0500

It seems that puppet-stdlib module has been updated recently and I started seeing the following error

Could not retrieve fact='package_provider', resolution='<anonymous>': Malformed version number string 3.8.0 (Puppet Enterprise 3.8.0) is there something I need to do to fix this issue, besides downgrading stdlib ?

edit retag flag offensive close merge delete


Can you run the agent with the --debug flag and post a link to a pastebin of the entire output of the command? Also post a link to a pastebin of the output of "puppet module list --tree".

GregLarkin gravatar imageGregLarkin ( 2015-10-19 20:29:54 -0500 )edit

Also, have you written a custom fact named package_provider or installed a module that implements it? It might help to see the source code of that fact, too.

GregLarkin gravatar imageGregLarkin ( 2015-10-19 20:32:02 -0500 )edit

Are you updating the stdlib module directly from Github or using the Puppet Forge? I can see a code change that could cause the error you reported, but it's not part of the official current module released on the Forge.

GregLarkin gravatar imageGregLarkin ( 2015-10-26 19:42:25 -0500 )edit

Directly from github.

slk gravatar imageslk ( 2015-10-27 07:42:33 -0500 )edit

Ok, that's certainly the problem then. Code you find there is not guaranteed to work correctly under all circumstances. Is there a reason why you can't use the published Forge module instead?

GregLarkin gravatar imageGregLarkin ( 2015-10-27 11:23:01 -0500 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2015-12-18 14:42:57 -0500

aharden gravatar image

I found this problem in the 4.10.0 release of puppetlabs/stdlib and submitted a fix that was enhanced in this pull request:

Short answer: the package_provider fact was added to stdlib 4.10.0 and was not tested against Puppet Enterprise 3.x. This new fact assumed that the 'puppetversion' fact would always contain a version number. PE 3.x version of that fact included the PE version info as well. I've submitted a support case and asked for a bugfix release since this causes errors on all PE 3.x deployments.

This doesn't occur on PE 2015.2 and greater because of the normalization of open-source Puppet and PE.

edit flag offensive delete link more

answered 2015-10-21 08:01:02 -0500

slk gravatar image

@GregLarkin. the only lib/facter/package_provider.rb file i see with in my modules directory is from stdlib module. ie /etc/puppetlabs/puppet/environments/production/modules/stdlib/lib/facter/package_provider.rb

here are the pastebin links for the puppet module list --tree

for the puppet agent -t --debug. I had to split the out put since pastebin does not allow more then 512kb per post.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2015-10-19 08:48:31 -0500

Seen: 408 times

Last updated: Dec 18 '15