java.lang.IllegalStateException: Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil)

JIRA | Charlie Sharpsteen | 2 years ago
  1. 0

    Console Services dies if it cannot establish a connection to PostgreSQL during startup. This means that a transient database outage can take down the classifier and require manual intervention to restart {{pe-console-services}} as the agent will no longer recieve the {{puppet_enterprise::profile::console}} class which manages the state of this service. As a point of comparison, PuppetDB handles PostgreSQL outages gracefully by waiting for the database to come back online and then re-establishing a connection. h2. Reproduction Case Install a PE 3.7.1 all-in-one master, stop the PostgreSQL database and restart both the PuppetDB and Console Services daemons: {code} # service pe-postgresql stop Stopping pe-postgresql service: [ OK ] # service pe-puppetdb restart Stopping pe-puppetdb: [ OK ] Starting pe-puppetdb: [ OK ] # service pe-console-services restart Stopping pe-console-services: [ OK ] Starting pe-console-services: [ OK ] {code} h3. Outcome PuppetDB will be running, however Console Services will be dead: {code} # service pe-puppetdb status pe-puppetdb (pid 17346) is running... # service pe-console-services status pe-console-services dead but pid file exists {code} The {{/var/log/pe-console-services/console-services.log}} file will show an unhandled exception occurred during initialization which causes the service to proceed to shutdown: {code} 2015-01-07 19:15:17,882 ERROR [p.t.internal] Error during service init!!! org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:207) ~[console-services-release.jar:na] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) ~[console-services-release.jar:na] at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136) ~[console-services-release.jar:na] at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29) ~[console-services-release.jar:na] at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21) ~[console-services-release.jar:na] at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31) ~[console-services-release.jar:na] at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) ~[console-services-release.jar:na] at org.postgresql.Driver.makeConnection(Driver.java:410) ~[console-services-release.jar:na] at org.postgresql.Driver.connect(Driver.java:280) ~[console-services-release.jar:na] at java.sql.DriverManager.getConnection(DriverManager.java:571) ~[na:1.7.0_71-icedtea] at java.sql.DriverManager.getConnection(DriverManager.java:187) ~[na:1.7.0_71-icedtea] at clojure.java.jdbc.deprecated$get_connection.invoke(deprecated.clj:182) ~[na:na] at clojure.java.jdbc.deprecated$with_connection_STAR_.invoke(deprecated.clj:305) ~[na:na] at migratus.database$eval24631$fn__24632.invoke(database.clj:196) ~[na:na] at clojure.lang.MultiFn.invoke(MultiFn.java:227) ~[console-services-release.jar:na] at migratus.core$migrate.invoke(core.clj:56) ~[na:na] at puppetlabs.rbac.db_utils$migrate_BANG_.invoke(db_utils.clj:37) ~[na:na] at puppetlabs.rbac.services.rbac$reify__22438$service_fnk__5284__auto___positional$reify__22445.init(rbac.clj:92) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5121$G__5112__5124.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5121$G__5111__5128.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:145) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fns.invoke(internal.clj:173) ~[na:na] at puppetlabs.trapperkeeper.internal$build_app_STAR_$reify__5977.init(internal.clj:437) [na:na] at puppetlabs.trapperkeeper.internal$boot_services_STAR_$fn__5989.invoke(internal.clj:463) [na:na] at puppetlabs.trapperkeeper.internal$boot_services_STAR_.invoke(internal.clj:462) [na:na] at puppetlabs.trapperkeeper.core$boot_with_cli_data.invoke(core.clj:113) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:144) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) ~[na:1.7.0_71-icedtea] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.7.0_71-icedtea] at java.net.Socket.connect(Socket.java:579) ~[na:1.7.0_71-icedtea] at java.net.Socket.connect(Socket.java:528) ~[na:1.7.0_71-icedtea] at org.postgresql.core.PGStream.<init>(PGStream.java:60) ~[console-services-release.jar:na] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:101) ~[console-services-release.jar:na] ... 35 common frames omitted 2015-01-07 19:15:17,893 INFO [p.t.internal] Beginning shutdown sequence 2015-01-07 19:15:17,901 ERROR [p.t.internal] Encountered error during shutdown sequence java.lang.IllegalStateException: Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil) at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:152) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_$fn__5941.invoke(internal.clj:313) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_.invoke(internal.clj:312) [na:na] at puppetlabs.trapperkeeper.core$run_app.invoke(core.clj:133) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:148) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] 2015-01-07 19:15:17,907 INFO [p.t.s.w.jetty9-service] Shutting down web server(s). 2015-01-07 19:15:17,909 ERROR [p.t.internal] Encountered error during shutdown sequence java.lang.NullPointerException: null at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:301) ~[console-services-release.jar:na] at puppetlabs.rbac.services.rbac$reify__22438$service_fnk__5284__auto___positional$reify__22445.stop(rbac.clj:113) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5147$G__5108__5150.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5147$G__5107__5154.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:145) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_$fn__5941.invoke(internal.clj:313) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_.invoke(internal.clj:312) [na:na] at puppetlabs.trapperkeeper.core$run_app.invoke(core.clj:133) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:148) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] 2015-01-07 19:15:17,911 INFO [p.t.internal] Finished shutdown sequence {code} By contrast, PuppetDB stays up and waits for the database to come up. The {{/var/log/pe-puppetdb/pe-puppetdb.log}} log file shows: {code} 2015-01-07 19:24:32,947 ERROR [c.j.b.h.AbstractConnectionHook] Failed to acquire connection Sleeping for 7000ms and trying again. Attempts left: 3. Exception: java.net.ConnectException: Connection refused {code} h3. Expected Outcome Console Services behaves similar to PuppetDB and successfully starts up if PostgreSQL is not running. Instead of shutting down, Console Services should remain up and wait for the database.

    JIRA | 2 years ago | Charlie Sharpsteen
    java.lang.IllegalStateException: Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil)
  2. 0

    Console Services dies if it cannot establish a connection to PostgreSQL during startup. This means that a transient database outage can take down the classifier and require manual intervention to restart {{pe-console-services}} as the agent will no longer recieve the {{puppet_enterprise::profile::console}} class which manages the state of this service. As a point of comparison, PuppetDB handles PostgreSQL outages gracefully by waiting for the database to come back online and then re-establishing a connection. h2. Reproduction Case Install a PE 3.7.1 all-in-one master, stop the PostgreSQL database and restart both the PuppetDB and Console Services daemons: {code} # service pe-postgresql stop Stopping pe-postgresql service: [ OK ] # service pe-puppetdb restart Stopping pe-puppetdb: [ OK ] Starting pe-puppetdb: [ OK ] # service pe-console-services restart Stopping pe-console-services: [ OK ] Starting pe-console-services: [ OK ] {code} h3. Outcome PuppetDB will be running, however Console Services will be dead: {code} # service pe-puppetdb status pe-puppetdb (pid 17346) is running... # service pe-console-services status pe-console-services dead but pid file exists {code} The {{/var/log/pe-console-services/console-services.log}} file will show an unhandled exception occurred during initialization which causes the service to proceed to shutdown: {code} 2015-01-07 19:15:17,882 ERROR [p.t.internal] Error during service init!!! org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:207) ~[console-services-release.jar:na] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) ~[console-services-release.jar:na] at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136) ~[console-services-release.jar:na] at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29) ~[console-services-release.jar:na] at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21) ~[console-services-release.jar:na] at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31) ~[console-services-release.jar:na] at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) ~[console-services-release.jar:na] at org.postgresql.Driver.makeConnection(Driver.java:410) ~[console-services-release.jar:na] at org.postgresql.Driver.connect(Driver.java:280) ~[console-services-release.jar:na] at java.sql.DriverManager.getConnection(DriverManager.java:571) ~[na:1.7.0_71-icedtea] at java.sql.DriverManager.getConnection(DriverManager.java:187) ~[na:1.7.0_71-icedtea] at clojure.java.jdbc.deprecated$get_connection.invoke(deprecated.clj:182) ~[na:na] at clojure.java.jdbc.deprecated$with_connection_STAR_.invoke(deprecated.clj:305) ~[na:na] at migratus.database$eval24631$fn__24632.invoke(database.clj:196) ~[na:na] at clojure.lang.MultiFn.invoke(MultiFn.java:227) ~[console-services-release.jar:na] at migratus.core$migrate.invoke(core.clj:56) ~[na:na] at puppetlabs.rbac.db_utils$migrate_BANG_.invoke(db_utils.clj:37) ~[na:na] at puppetlabs.rbac.services.rbac$reify__22438$service_fnk__5284__auto___positional$reify__22445.init(rbac.clj:92) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5121$G__5112__5124.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5121$G__5111__5128.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:145) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fns.invoke(internal.clj:173) ~[na:na] at puppetlabs.trapperkeeper.internal$build_app_STAR_$reify__5977.init(internal.clj:437) [na:na] at puppetlabs.trapperkeeper.internal$boot_services_STAR_$fn__5989.invoke(internal.clj:463) [na:na] at puppetlabs.trapperkeeper.internal$boot_services_STAR_.invoke(internal.clj:462) [na:na] at puppetlabs.trapperkeeper.core$boot_with_cli_data.invoke(core.clj:113) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:144) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) ~[na:1.7.0_71-icedtea] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) ~[na:1.7.0_71-icedtea] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.7.0_71-icedtea] at java.net.Socket.connect(Socket.java:579) ~[na:1.7.0_71-icedtea] at java.net.Socket.connect(Socket.java:528) ~[na:1.7.0_71-icedtea] at org.postgresql.core.PGStream.<init>(PGStream.java:60) ~[console-services-release.jar:na] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:101) ~[console-services-release.jar:na] ... 35 common frames omitted 2015-01-07 19:15:17,893 INFO [p.t.internal] Beginning shutdown sequence 2015-01-07 19:15:17,901 ERROR [p.t.internal] Encountered error during shutdown sequence java.lang.IllegalStateException: Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil) at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:152) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_$fn__5941.invoke(internal.clj:313) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_.invoke(internal.clj:312) [na:na] at puppetlabs.trapperkeeper.core$run_app.invoke(core.clj:133) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:148) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] 2015-01-07 19:15:17,907 INFO [p.t.s.w.jetty9-service] Shutting down web server(s). 2015-01-07 19:15:17,909 ERROR [p.t.internal] Encountered error during shutdown sequence java.lang.NullPointerException: null at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:301) ~[console-services-release.jar:na] at puppetlabs.rbac.services.rbac$reify__22438$service_fnk__5284__auto___positional$reify__22445.stop(rbac.clj:113) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5147$G__5108__5150.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.services$eval5120$fn__5147$G__5107__5154.invoke(services.clj:12) ~[na:na] at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:145) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_$fn__5941.invoke(internal.clj:313) ~[na:na] at puppetlabs.trapperkeeper.internal$shutdown_BANG_.invoke(internal.clj:312) [na:na] at puppetlabs.trapperkeeper.core$run_app.invoke(core.clj:133) [na:na] at puppetlabs.trapperkeeper.core$run.invoke(core.clj:148) [na:na] at puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159) [na:na] at clojure.lang.RestFn.invoke(RestFn.java:457) [console-services-release.jar:na] at clojure.lang.Var.invoke(Var.java:394) [console-services-release.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:165) [console-services-release.jar:na] at clojure.lang.Var.applyTo(Var.java:700) [console-services-release.jar:na] at clojure.core$apply.invoke(core.clj:624) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7) [console-services-release.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) [console-services-release.jar:na] at puppetlabs.trapperkeeper.main.main(Unknown Source) [console-services-release.jar:na] 2015-01-07 19:15:17,911 INFO [p.t.internal] Finished shutdown sequence {code} By contrast, PuppetDB stays up and waits for the database to come up. The {{/var/log/pe-puppetdb/pe-puppetdb.log}} log file shows: {code} 2015-01-07 19:24:32,947 ERROR [c.j.b.h.AbstractConnectionHook] Failed to acquire connection Sleeping for 7000ms and trying again. Attempts left: 3. Exception: java.net.ConnectException: Connection refused {code} h3. Expected Outcome Console Services behaves similar to PuppetDB and successfully starts up if PostgreSQL is not running. Instead of shutting down, Console Services should remain up and wait for the database.

    JIRA | 2 years ago | Charlie Sharpsteen
    java.lang.IllegalStateException: Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil)
  3. 0

    puppetserver and LDAP terminus

    Google Groups | 2 years ago | Steve Huston
    java.lang.IllegalStateException: Unable to find bootstrap.cfg file via --bootstrap-config command line argument, current working directory, or on classpath
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    IllegalStateException in UICallbackDispatcher (on RAP)

    Eclipse Bugzilla | 6 years ago | elias
    java.lang.IllegalStateException: No context available outside of the request service lifecycle.
  6. 0

    [BrowserHistory] exception on session timeout with SimpleLifeCycle

    Eclipse Bugzilla | 5 years ago | rsternberg
    java.lang.IllegalStateException: No context available outside of the request service lifecycle.

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalStateException

      Lifecycle function 'stop' for service 'puppetlabs.classifier.main/classifier-service' must return a context map (got: nil)

      at puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke()
    2. puppetlabs.trapperkeeper
      core$main.doInvoke
      1. puppetlabs.trapperkeeper.internal$run_lifecycle_fn_BANG_.invoke(internal.clj:152)[na:na]
      2. puppetlabs.trapperkeeper.internal$shutdown_BANG_$fn__5941.invoke(internal.clj:313)[na:na]
      3. puppetlabs.trapperkeeper.internal$shutdown_BANG_.invoke(internal.clj:312)[na:na]
      4. puppetlabs.trapperkeeper.core$run_app.invoke(core.clj:133)[na:na]
      5. puppetlabs.trapperkeeper.core$run.invoke(core.clj:148)[na:na]
      6. puppetlabs.trapperkeeper.core$main.doInvoke(core.clj:159)[na:na]
      6 frames
    3. Clojure
      core$apply.invoke
      1. clojure.lang.RestFn.invoke(RestFn.java:457)[console-services-release.jar:na]
      2. clojure.lang.Var.invoke(Var.java:394)[console-services-release.jar:na]
      3. clojure.lang.AFn.applyToHelper(AFn.java:165)[console-services-release.jar:na]
      4. clojure.lang.Var.applyTo(Var.java:700)[console-services-release.jar:na]
      5. clojure.core$apply.invoke(core.clj:624)[console-services-release.jar:na]
      5 frames
    4. puppetlabs.trapperkeeper
      main$_main.doInvoke
      1. puppetlabs.trapperkeeper.main$_main.doInvoke(main.clj:7)[console-services-release.jar:na]
      1 frame
    5. Clojure
      RestFn.applyTo
      1. clojure.lang.RestFn.applyTo(RestFn.java:137)[console-services-release.jar:na]
      1 frame
    6. puppetlabs.trapperkeeper
      main.main
      1. puppetlabs.trapperkeeper.main.main(Unknown Source)[console-services-release.jar:na]
      1 frame