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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Won't Fix
    • Affects Version/s: PUP 5.3.3
    • Fix Version/s: None
    • Component/s: Compiler
    • Labels:
    • QA Risk Assessment:
      Needs Assessment

      Description

      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."

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  JohnsonEarls Johnson Earls
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: