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

Warning: #<Puppet::Transaction::Persistence since upgrade to puppet-agent 6.25.0

    XMLWordPrintable

Details

    • Coremunity
    • Coremunity Kanban
    • Needs Assessment
    • 46570
    • 1
    • Bug Fix
    • Fixes a regression introduced in 6.25.0 and 7.10.0 that caused a "Puppet::Transaction::Persistence" warning during each agent run.
    • Needs Assessment

    Description

      Puppet Version: 6.25.0
      Puppet Server Version: 6.0.10
      OS Name/Version: Debian GNU/Linux 11 (bullseye)

      Since puppet-agent has been upgraded from 6.24.0, we get warnings on nodes using a specific configuration involving cataphract/yaml_settings wrapped by trepasi/cassandra.

      Desired Behavior: work without warnings

      Actual Behavior: while the catalog is applied properly, warnings are raised for every hash key passed to the values parameter of yaml_settings resource stating a type cast issue.

      Example:

      Node manifest includes a contain cassandra and gets parameter via Hiera:

      cassandra::config:
        listen_address: "%{facts.networking.ip}"
        broadcast_rpc_address: "%{facts.networking.ip}"
        rpc_address: 0.0.0.0
        num_tokens: 256
        auto_bootstrap: true
        cluster_name: "Test Cassandra %{facts.mam_stage}"
        endpoint_snitch: GossipingPropertyFileSnitch
        authenticator: PasswordAuthenticator
        authorizer: CassandraAuthorizer
        seed_provider:
          - class_name: org.apache.cassandra.locator.SimpleSeedProvider
            parameters:
              - seeds: 10.90.21.10,10.90.18.238
        diagnostic_events_enabled: true
      

      Output of puppet agent --test on a node includes the warnings:

      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["listen_address"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["broadcast_rpc_address"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["rpc_address"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["num_tokens"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["auto_bootstrap"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["cluster_name"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["endpoint_snitch"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["authenticator"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["authorizer"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["seed_provider"]'
      Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["diagnostic_events_enabled"]'
      

      Debug and trace options does not unveil more relevant information.

      Contents of the transaction store on the node however changed from:

        Yaml_settings[cassandra::config]:
          parameters:
            values:
              system_value:
              - ? - listen_address
                : 10.90.18.238
                ? - broadcast_rpc_address
                : 10.90.18.238
                ? - rpc_address
                : 0.0.0.0
                ? - num_tokens
                : 256
                ? - auto_bootstrap
                : true
                ? - cluster_name
                : Test Cassandra qa
                ? - endpoint_snitch
                : GossipingPropertyFileSnitch
                ? - authenticator
                : PasswordAuthenticator
                ? - authorizer
                : CassandraAuthorizer
                ? - seed_provider
                : - class_name: org.apache.cassandra.locator.SimpleSeedProvider
                    parameters:
                    - seeds: 10.90.21.10,10.90.18.238
                ? - diagnostic_events_enabled
                : true
      

      with 6.24.0 to:

        Yaml_settings[cassandra::config]:
          parameters:
            values:
              system_value:
              - '["listen_address"]': 10.90.18.238
                '["broadcast_rpc_address"]': 10.90.18.238
                '["rpc_address"]': 0.0.0.0
                '["num_tokens"]': 256
                '["auto_bootstrap"]': true
                '["cluster_name"]': Test Cassandra qa
                '["endpoint_snitch"]': GossipingPropertyFileSnitch
                '["authenticator"]': PasswordAuthenticator
                '["authorizer"]': CassandraAuthorizer
                '["seed_provider"]':
                - class_name: org.apache.cassandra.locator.SimpleSeedProvider
                  parameters:
                  - seeds: 10.90.21.10,10.90.18.238
                '["diagnostic_events_enabled"]': true
      

      with 6.25.0, which is the only change on the node.

      Things need to be clarified:

      • is this an actual issue involving a poor usage pattern
      • could this lead to a future issue
      • could the warnings be suppressed if not relevant

       

      Attachments

        Issue Links

          Activity

            People

              josh Josh Cooper
              rtib Tibor Répási
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support