Issue #17053 has been updated by eric sorenson. Status changed from Unreviewed to Needs Decision Assignee set to David Gwilliam Branch set to https://github.com/puppetlabs/puppet/pull/1281
David thanks for working on this -- from the last comments on the pull request, Jeff wants further tests around this and can be available to help you get started with writing them if you want. OTOH if it's fixed already in newer versions maybe you don't have to work to get it fully cleaned up. Feel free to close if that's case. ---------------------------------------- Bug #17053: Broken handling of facts that look like dates https://projects.puppetlabs.com/issues/17053#change-77715 Author: Ken Johnson Status: Needs Decision Priority: Normal Assignee: David Gwilliam Category: Target version: Affected Puppet version: 2.7.19 Keywords: Branch: https://github.com/puppetlabs/puppet/pull/1281 Received the following report from a user about unusual behavior with custom facts whose value looks like a date. I was able to replicate this with PE 2.5.3 under Ubuntu 12.04 and PE 2.6.0 under Ubuntu 10.04 (it's what I had handy!) by following the steps detailed. --START-- Last night a few of our clients (not all) started reporting as failed in our dashboard. When checking a bit closer the client spits out the following error message when executing a puppet run: <pre> err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not intern from b64_zlib_yaml: invalid date warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run </pre> There was no changes to our puppet manifests at this time. There has been changes to a couple of facts, but this the clients was running just fine with these facts earlier on. When running with debug and verbose enabled i get the following: <pre> debug: Using cached certificate_revocation_list for ca debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using pson debug: Finishing transaction 70037384342420 info: Loading facts in LastUpgrade ...... info: Loading facts in Location info: Loading facts in facter_dot_d debug: catalog supports formats: b64_zlib_yaml dot pson raw yaml; using pson err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not intern from b64_zlib_yaml: invalid date warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run debug: Using cached certificate for ca debug: Using cached certificate for node1 debug: Using cached certificate_revocation_list for ca debug: Value of 'preferred_serialization_format' (pson) is invalid for report, using default (b64_zlib_yaml) debug: report supports formats: b64_zlib_yaml raw yaml; using b64_zlib_yaml </pre> We found the cause of the problem and this relates to a fact: <pre> Facter.add("LastUpgrade") do setcode do if File.exists?("/tmp/status") file = File.open("/tmp/status") content = file.read content.chomp else content = "Unknown" content.chomp end end end </pre> This fact should read the content of the file as a string. Puppet some how interpret this as a date and fails when the format is wrong. How to reproduce: 1. add the facts to a client 2. add a line containing "2012-16-10" to /tmp/status 3. execute a new puppet run. The client will fail with the error message above. -- 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.
