Hi, Thanks for the report!
On 14:54 Thu 07 Mar , Kienan wrote: > When running puppet 5.x with reports enabled and sent to PuppetDB 6.x, > PuppetDB fails to store the report with the following error: > > 2019-03-01T17:06:01.396-05:00 ERROR [p.p.command] [100] [store report] Fatal > error on attempt 0 for pm-buster.test > clojure.lang.ExceptionInfo: throw+: {:fatal true, :cause #error { > :cause "Value does not match schema: {:metrics [nil nil nil nil nil nil > nil nil nil nil nil nil {:value (not (instance? java.lang.Number > a-java.lang.String))} {:value (not (instance? java.lang.Number > a-java.lang.String))} nil {:value (not (instance? java.lang.Number > a-java.lang.String))} nil {:value (not (instance? java.lang.Number > a-java.lang.String))} nil {:value (not (instance? java.lang.Number > a-java.lang.String))} {:value (not (instance? java.lang.Number > a-java.lang.String))} {:value (not (instance? java.lang.Number > a-java.lang.String))} nil nil {:value (not (instance? java.lang.Number > a-java.lang.String))} nil {:value (not (instance? java.lang.Number > a-java.lang.String))} nil {:value (not (instance? java.lang.Number > a-java.lang.String))} nil nil nil nil nil nil nil nil nil {:value (not > (instance? java.lang.Number a-java.lang.String))} nil nil nil nil nil > nil]}" > > A copy of the Puppet DB log file is attached with the complete > backtrace. > > I'm filing this bug against the puppet package for the following reasons > > * hosts running puppet 4.x (stretch) are able to submit reports to same > version of Puppet DB. So, this sounds like a regression. I would not be surprised if Puppet 4 nodes failed to work with PuppetDB 6, but this is clearly a bug. > * I am able to "solve" the problem by modifying a number of places in > the puppet agent files where report information is returned and calling > "to_i" or "to_f" to force casting into a numeric value instead of a > string. > > The metrics keys affected include: convert_catalog and > transaction_evaluation. The keys affected may change depending on the > manifest used for the node. > > This being said, it may be appropriate to move this bug to the PuppetDB > package. I haven't been able to find any upstream bugs regarding this > behaviour. > > To reproduce: > > 1. Install puppet, puppet-master-passenger, and puppetdb on the same > host. > 2. Configure the puppet master to storeconfigs with the PuppetDB and the > agent to submit reports: > > (snippet from /etc/puppet.conf) > > [main] > reports = puppetdb Note to self: let's add report storage to the puppet/puppetdb autopkgtests. > [master] > storeconfigs = true > storeconfig_backend = true > [agent] > report = true > > 3. Run puppet using a minimal node manifest: > > node 'pm-buster.test' { > > } > > 4. The puppet run should complete successfully with no additional > output. > 5. Check the PuppetDB log at /var/log/puppetdb/puppetdb.log there should > be an error submitting the report present. > > Note: this affects hosts running puppet 5.x which submit their reports > to the puppet master as well. Does this mean that storing reports on the Puppet master is also broken? > > I would expect normally that reports are able to be stored without > error. Agreed. This is definitely worth fixing for Buster, I'll look into it. Thanks, Apollon