Uploaded image for project: 'Puppet Agent'
  1. Puppet Agent
  2. PA-4037

superclass mismatch for class Uniquefile (TypeError)

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • None
    • puppet-agent 7.12.0
    • None
    • Coremunity
    • Coremunity Kanban
    • Needs Assessment
    • Bug Fix
    • Hide
      The performance patch introduced in PA-3526 in combination with the move to require_relative in PUP-11055 caused a regression on systems whose Ruby load path includes symlinks. As a result, the performance patch was reverted on non-Windows systems.
      Show
      The performance patch introduced in PA-3526 in combination with the move to require_relative in PUP-11055 caused a regression on systems whose Ruby load path includes symlinks. As a result, the performance patch was reverted on non-Windows systems.
    • Needs Assessment

    Description

      Puppet Version: puppet-agent-7.7.0-1.fc32.x86_64
      Puppet Server Version: 6.12.1 (Helm Chart: 5.1.0)
      OS Name/Version: Fedora 34

      After the puppet-agent update from puppet-agent-7.6.1-1.fc32.x86_64 to
      puppet-agent-7.7.0-1.fc32.x86_64  the agent seems to fail.

      I have observed this on multiple machines. A rollback to 7.6.1 fixes the issue.

      I've tried the nightly builds for fedora 34 and they give the same output as below.

      Desired Behavior: Retrieves the client configuration from the Puppetserver and applies it to the local host.

      Actual Behavior:

      If I run the following: /opt/puppetlabs/bin/puppet agent -t --verbose --certname $(hostname -s) --vardir /var/.puppetcache --debug --trace

      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/version.rb:9: warning: already initialized constant Puppet::PUPPETVERSION
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/version.rb:9: warning: previous definition of PUPPETVERSION was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:8: warning: already initialized constant Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:8: warning: previous definition of OLDEST_RECOMMENDED_RUBY_VERSION was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/platform.rb:4: warning: already initialized constant Puppet::Util::Platform::FIPS_STATUS_FILE
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/platform.rb:4: warning: previous definition of FIPS_STATUS_FILE was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/platform.rb:5: warning: already initialized constant Puppet::Util::Platform::WINDOWS_FIPS_REGISTRY_KEY
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/platform.rb:5: warning: previous definition of WINDOWS_FIPS_REGISTRY_KEY was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:6: warning: already initialized constant Puppet::Util::SymbolicFileMode::ReadBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:6: warning: previous definition of ReadBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:6: warning: already initialized constant Puppet::Util::SymbolicFileMode::SetUIDBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:6: warning: previous definition of SetUIDBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:7: warning: already initialized constant Puppet::Util::SymbolicFileMode::WriteBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:7: warning: previous definition of WriteBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:7: warning: already initialized constant Puppet::Util::SymbolicFileMode::SetGIDBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:7: warning: previous definition of SetGIDBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:8: warning: already initialized constant Puppet::Util::SymbolicFileMode::ExecBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:8: warning: previous definition of ExecBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:8: warning: already initialized constant Puppet::Util::SymbolicFileMode::StickyBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:8: warning: previous definition of StickyBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:9: warning: already initialized constant Puppet::Util::SymbolicFileMode::SymbolicMode
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:9: warning: previous definition of SymbolicMode was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:10: warning: already initialized constant Puppet::Util::SymbolicFileMode::SymbolicSpecialToBit
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/symbolic_file_mode.rb:10: warning: previous definition of SymbolicSpecialToBit was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:8: warning: already initialized constant Puppet::FileSystem::PathPattern::TRAVERSAL
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:8: warning: previous definition of TRAVERSAL was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:9: warning: already initialized constant Puppet::FileSystem::PathPattern::ABSOLUTE_UNIX
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:9: warning: previous definition of ABSOLUTE_UNIX was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:10: warning: already initialized constant Puppet::FileSystem::PathPattern::ABSOLUTE_WINDOWS
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:10: warning: previous definition of ABSOLUTE_WINDOWS was here
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:12: warning: already initialized constant Puppet::FileSystem::PathPattern::CURRENT_DRIVE_RELATIVE_WINDOWS
      /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/path_pattern.rb:12: warning: previous definition of CURRENT_DRIVE_RELATIVE_WINDOWS was here
      Traceback (most recent call last):
      38: from /opt/puppetlabs/puppet/bin/puppet:4:in `<main>'
      37: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
      36: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
      35: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>'
      34: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `require_relative'
      33: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:42:in `<top (required)>'
      32: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:340:in `<module:Puppet>'
      31: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:340:in `require_relative'
      30: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/runtime.rb:1:in `<top (required)>'
      29: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/runtime.rb:1:in `require_relative'
      28: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:1:in `<top (required)>'
      27: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:9:in `<module:Puppet>'
      26: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:26:in `<module:HTTP>'
      25: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:26:in `require_relative'
      24: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http/service/file_server.rb:1:in `<top (required)>'
      23: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http/service/file_server.rb:1:in `require_relative'
      22: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:9:in `<top (required)>'
      21: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:14:in `<class:Metadata>'
      20: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector.rb:49:in `indirects'
      19: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector.rb:49:in `new'
      18: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:110:in `initialize'
      17: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:121:in `set_global_setting'
      16: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:180:in `validate_terminus_class'
      15: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/terminus.rb:112:in `terminus_class'
      14: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/instance_loader.rb:49:in `loaded_instance'
      13: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/concurrent/lock.rb:10:in `synchronize'
      12: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/instance_loader.rb:54:in `block in loaded_instance'
      11: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:182:in `load'
      10: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:78:in `load_file'
      9: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:78:in `load'
      8: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/file_metadata/selector.rb:1:in `<top (required)>'
      7: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/file_metadata/selector.rb:1:in `require_relative'
      6: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:1:in `<top (required)>'
      5: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:1:in `require_relative'
      4: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:17:in `<top (required)>'
      3: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:17:in `require_relative'
      2: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11:in `<top (required)>'
      1: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11:in `require_relative'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:17:in `<top (required)>': superclass mismatch for class Uniquefile (TypeError)
      38: from /opt/puppetlabs/puppet/bin/puppet:4:in `<main>'
      37: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
      36: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
      35: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>'
      34: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `require_relative'
      33: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:42:in `<top (required)>'
      32: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:340:in `<module:Puppet>'
      31: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:340:in `require_relative'
      30: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/runtime.rb:1:in `<top (required)>'
      29: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/runtime.rb:1:in `require_relative'
      28: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:1:in `<top (required)>'
      27: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:9:in `<module:Puppet>'
      26: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:26:in `<module:HTTP>'
      25: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http.rb:26:in `require_relative'
      24: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http/service/file_server.rb:1:in `<top (required)>'
      23: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/http/service/file_server.rb:1:in `require_relative'
      22: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:9:in `<top (required)>'
      21: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:14:in `<class:Metadata>'
      20: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector.rb:49:in `indirects'
      19: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector.rb:49:in `new'
      18: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:110:in `initialize'
      17: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:121:in `set_global_setting'
      16: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:180:in `validate_terminus_class'
      15: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/terminus.rb:112:in `terminus_class'
      14: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/instance_loader.rb:49:in `loaded_instance'
      13: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/concurrent/lock.rb:10:in `synchronize'
      12: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/instance_loader.rb:54:in `block in loaded_instance'
      11: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:182:in `load'
      10: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:78:in `load_file'
      9: from /usr/lib/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/autoload.rb:78:in `load'
      8: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/file_metadata/selector.rb:1:in `<top (required)>'
      7: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/file_metadata/selector.rb:1:in `require_relative'
      6: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:1:in `<top (required)>'
      5: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_serving/metadata.rb:1:in `require_relative'
      4: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:17:in `<top (required)>'
      3: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:17:in `require_relative'
      2: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11:in `<top (required)>'
      1: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:11:in `require_relative'
      /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:17:in `<top (required)>': Could not autoload puppet/indirector/file_metadata/selector: superclass mismatch for class Uniquefile (Puppet::Error)

      A tcpdump and the logs indicate that the Puppetserver was never contacted.
      I can't really make sense of the output.

      Let me know if you need any more information.

       

      Attachments

        Issue Links

          Activity

            People

              josh Josh Cooper
              Phil Philipp H
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support