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

Puppet is unable replace ISO-8859 English text with ASCII English text sourced file post upgrade from FOSS

    Details

    • Type: Bug
    • Status: Accepted
    • Priority: Normal
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: PUP 5.y
    • Component/s: Docs
    • Labels:

      Description

      When upgrading from Puppet 3.6.2 and more importantly Ruby 1.8.7 to Puppet 4 and Ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux], puppet is unable to replace a file that was previously laid down by the older version of puppet/ruby.

      Error: /Stage[main]/Ssl::Cacerts/File[/etc/pki/tls/certs/ca-bundle.crt]/content: change from {md5}6b39ebed99eb4b724966e1bcab09eb6d to {md5}3dbe985e13d4d1a09ee41b11d4e7e296 failed: invalid byte sequence in UTF-8
      

      This is a sourced file

      puppet:///modules/ssl/cacerts/ca-bundle.crt
      

      The file on disk

       file  /etc/pki/tls/certs/ca-bundle.crt
      /etc/pki/tls/certs/ca-bundle.crt: ISO-8859 English text
      md5sum /etc/pki/tls/certs/ca-bundle.crt
      6b39ebed99eb4b724966e1bcab09eb6d  /etc/pki/tls/certs/ca-bundle.crt
      
      

      the file on master

      file ca-bundle.crt 
      ca-bundle.crt: ASCII English text
      md5sum ca-bundle.crt 
      3dbe985e13d4d1a09ee41b11d4e7e296  ca-bundle.crt
      

      the trace shows this is actually our display code

      Notice: /Stage[main]/Main/Cron[pe-mcollective-metadata]/ensure: current_value present, should be absent (noop)
      Error: invalid byte sequence in UTF-8
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/colors.rb:92:in `gsub'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/colors.rb:92:in `console_color'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/colors.rb:82:in `colorize'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log/destinations.rb:170:in `handle'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:174:in `block in newmessage'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:173:in `each'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:173:in `newmessage'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:266:in `initialize'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:85:in `new'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:85:in `create'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/logging.rb:9:in `send_log'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/logging.rb:18:in `block (2 levels) in <module:Logging>'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:104:in `block in insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:167:in `write_temporarily'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:103:in `insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:259:in `safe_insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:123:in `sync_if_needed'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:89:in `block in perform_changes'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:88:in `each'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:88:in `perform_changes'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:20:in `evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:204:in `apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:220:in `eval_resource'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `call'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `block (2 levels) in evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:292:in `block in thinmark'
      /opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:291:in `thinmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `block in evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:118:in `traverse'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:138:in `evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:178:in `block in apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:153:in `with_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:107:in `as_logging_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:177:in `apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:119:in `block in apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:129:in `block in benchmark'
      /opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:128:in `benchmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:118:in `apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:228:in `run_internal'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:134:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:223:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:133:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:48:in `block (4 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent/locker.rb:20:in `lock'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:48:in `block (3 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:98:in `with_client'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (2 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:65:in `run_in_fork'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:44:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `call'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:42:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:351:in `onetime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:328:in `run_command'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:446:in `exit_on_fail'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:128:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:72:in `execute'
      /opt/puppetlabs/puppet/bin/puppet:5:in `<main>'
      Error: /Stage[main]/Ssl::Cacerts/File[/etc/pki/tls/certs/ca-bundle.crt]/content: change from {md5}6b39ebed99eb4b724966e1bcab09eb6d to {md5}3dbe985e13d4d1a09ee41b11d4e7e296 failed: invalid byte sequence in UTF-8
      

      Adding --color false fixes the first trace

      Error: invalid byte sequence in UTF-8
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log/destinations.rb:36:in `split'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log/destinations.rb:36:in `handle'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:174:in `block in newmessage'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:173:in `each'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:173:in `newmessage'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:266:in `initialize'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:85:in `new'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:85:in `create'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/logging.rb:9:in `send_log'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/logging.rb:18:in `block (2 levels) in <module:Logging>'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:104:in `block in insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:167:in `write_temporarily'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/file/content.rb:103:in `insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:259:in `safe_insync?'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:123:in `sync_if_needed'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:89:in `block in perform_changes'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:88:in `each'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:88:in `perform_changes'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:20:in `evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:204:in `apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:220:in `eval_resource'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `call'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `block (2 levels) in evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:292:in `block in thinmark'
      /opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:291:in `thinmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:147:in `block in evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:118:in `traverse'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:138:in `evaluate'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:178:in `block in apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:153:in `with_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:107:in `as_logging_destination'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:177:in `apply'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:119:in `block in apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:129:in `block in benchmark'
      /opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:128:in `benchmark'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:118:in `apply_catalog'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:228:in `run_internal'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:134:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:223:in `override'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:133:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:48:in `block (4 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent/locker.rb:20:in `lock'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:48:in `block (3 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:98:in `with_client'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (2 levels) in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:65:in `run_in_fork'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:44:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `call'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:42:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:351:in `onetime'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:328:in `run_command'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `block in run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:446:in `exit_on_fail'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:128:in `run'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:72:in `execute'
      /opt/puppetlabs/puppet/bin/puppet:5:in `<main>'
      

      Adding -diff /bin/true + original args bypasses the error

      sudo puppet agent -t --no-show_diff --color false --diff /bin/true
      Info: Retrieving pluginfacts
      Info: Retrieving plugin
      Info: Loading facts
      Info: Caching catalog for puppet-postgres2001.sv2.box.net
      Info: Applying configuration version '1454364865'
      Notice: /Stage[main]/Main/Cron[pe-mcollective-metadata]/ensure: current_value present, should be absent (noop)
      Notice: /Stage[main]/Ssl::Cacerts/File[/etc/pki/tls/certs/ca-bundle.crt]/content: 
      Notice: /Stage[main]/Ssl::Cacerts/File[/etc/pki/tls/certs/ca-bundle.crt]/content: content changed '{md5}6b39ebed99eb4b724966e1bcab09eb6d' to '{md5}3dbe985e13d4d1a09ee41b11d4e7e296'
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                zack.smith Zack Smith
              • Votes:
                0 Vote for this issue
                Watchers:
                10 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Zendesk Support