Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
None
-
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
- is blocked by
-
PUP-11351 Puppet::Transaction::Persistence:0x00005598a2c1ebf8 warnings on puppet run
-
- Closed
-
-
PUP-11352 ToDataSerializer which loses track of the current path
-
- Closed
-
-
PUP-11353 "silence_warnings" argument doesn't affect the "non-string hash key" warning
-
- Closed
-
- relates to
-
PUP-10820 Binary, Sensitive, etc deferred results can corrupt the transaction store
-
- Resolved
-