Ask Your Question

puppetdb dying with java error

asked 2013-04-06 16:26:01 -0600

Ash gravatar image

Installed puppetdb using the PuppetDB module, but puppetdb will only run for a few seconds before dying with the below error.

Tried again on a clean install of CentOS 6.3 & Puppet Enterprise 2.7.2, but got the same problem.

java.lang.AssertionError: Assert failed: (string? s) at com.puppetlabs.time$parseperiod.invoke (time.clj:72)$configurenodettl.invoke (services.clj:188)$configuredatabasettls.invoke (services.clj:220)$configuredatabase.invoke (services.clj:239)$parseconfig ... (more)

edit retag flag offensive close merge delete


Hm, I'm hitting the same issue on RHEL 6.4, PuppetDB 1.2.0 and OpenJDK 1.6.024 (java-1.6.0-openjdk- ...(more)

domcleal gravatar imagedomcleal ( 2013-04-07 04:34:37 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-04-07 05:00:44 -0600

domcleal gravatar image

This turns out to be issue #20099 where a missing unit (seconds, minutes) from the node TTL settings in PuppetDB's config causes the assertion error.

To resolve it simply, ensure the settings in /etc/puppetdb/conf.d/database.ini are qualified with a unit, e.g.

node-ttl = 0s
node-purge-ttl = 0s

If they're just "0" then you get the assertion error.

The puppetlabs-puppetdb module currently sets these to "0", so if you're using that you can either override them or apply this patch.

class { "puppetdb":
  node_ttl       => "0s",
  node_purge_ttl => "0s",
edit flag offensive delete link more



this answer is almost, but not quite, correct: it turns out that the node_ttl and node_purge_ttl params are not passed from puppetdb to puppetdb::server. a fix is in

hakamadare gravatar imagehakamadare ( 2013-04-09 07:21:19 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2013-04-06 16:26:01 -0600

Seen: 578 times

Last updated: Apr 07 '13