Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-8187

`puppet master compile` fails to save the catalog with arbitrary binary data in file resources



    • Bug
    • Status: Closed
    • Normal
    • Resolution: Won't Fix
    • PUP 5.3.3
    • None
    • Compiler
    • Needs Assessment


      I have been using the puppet master --compile application to test compiling catalogs for each of my nodes before moving forward with upgrading from my old 4.2.3 Puppet server.

      For one particular role, the 5.x puppet master --compile fails to output the catalog. The last two lines it produces are:

      2017-11-21 00:39:23 +0000 Puppet (notice): Compiled catalog for hostname.example.com in environment production in 18.80 seconds
      2017-11-21 00:39:24 +0000 Puppet (err): Failed to compile catalog for node hostname.example.com: source sequence is illegal/malformed utf-8

      I believe this message is being generated in /opt/puppetlabs/puppet/lib/ruby/vendor/puppet/application/master.rb line 172, in the compile method:

            puts JSON::pretty_generate(catalog.to_resource, :allow_nan => true, :max_nesting => false)

      When I switch this to PSON::pretty_generate, it works fine.

      This is being caused by a File resource trying to install an executable binary program via the content parameter - when I remove that particular File resource from the compilation, it completes without a problem.

      I can't tell if this will be a problem when I move to an agent/server model, so this troubles me. If this is a global problem, then it's definitely a high priority regression. If it only affects the puppet master --compile application, then it's lower priority, but still problematic, as the File resource implicitly allows for binary content based on the https://puppet.com/docs/puppet/5.3/types/file.html comment that "On Windows, note that file contents are managed in binary mode; Puppet never automatically translates line endings."


        Issue Links



              Unassigned Unassigned
              JohnsonEarls Johnson Earls
              0 Vote for this issue
              5 Start watching this issue



                Zendesk Support