[Pkg-puppet-devel] Bug#990872: puppetdb.jar crashes out of the box with clojure classpath error

Gabriel G. Rosa gabriel.g.rosa at gmail.com
Sat Jul 10 07:14:22 BST 2021


Package: puppetdb
Version: 6.2.0-5
Severity: grave
Justification: renders package unusable

Dear Maintainer,

When installing puppetdb and configuring it to listen on http port, the
puppetdb.jar crashes with the following lines in syslog:

Jul  9 23:01:46 puppet java[25194]: Syntax error (FileNotFoundException) compiling at (clojure/core/async/impl/ioc_macros.clj:1:1).
Jul  9 23:01:46 puppet java[25194]: Could not locate clojure/tools/analyzer__init.class, clojure/tools/analyzer.clj or clojure/tools/analyzer.cljc on classpath.
Jul  9 23:01:46 puppet java[25194]: Full report at:
Jul  9 23:01:46 puppet java[25194]: /tmp/clojure-1064777479875377538.edn

Here's the full text of the dumpfile:

{:clojure.main/message
 "Syntax error (FileNotFoundException) compiling at (clojure/core/async/impl/ioc_macros.clj:1:1).\nCould not locate clojure/tools/analyzer__init.class, clojure/tools/analyzer.clj or clojure/tools/analyzer.cljc on classpath.\n",
 :clojure.main/triage
 {:clojure.error/phase :compile-syntax-check,
  :clojure.error/line 1,
  :clojure.error/column 1,
  :clojure.error/source "ioc_macros.clj",
  :clojure.error/path "clojure/core/async/impl/ioc_macros.clj",
  :clojure.error/class java.io.FileNotFoundException,
  :clojure.error/cause
  "Could not locate clojure/tools/analyzer__init.class, clojure/tools/analyzer.clj or clojure/tools/analyzer.cljc on classpath."},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message
    "Syntax error compiling at (clojure/core/async/impl/ioc_macros.clj:1:1).",
    :data
    {:clojure.error/phase :compile-syntax-check,
     :clojure.error/line 1,
     :clojure.error/column 1,
     :clojure.error/source "clojure/core/async/impl/ioc_macros.clj"},
    :at [clojure.lang.Compiler load "Compiler.java" 7652]}
   {:type java.io.FileNotFoundException,
    :message
    "Could not locate clojure/tools/analyzer__init.class, clojure/tools/analyzer.clj or clojure/tools/analyzer.cljc on classpath.",
    :at [clojure.lang.RT load "RT.java" 462]}],
  :trace
  [[clojure.lang.RT load "RT.java" 462]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 930]
   [clojure.core.async.impl.ioc_macros$eval7174$loading__6738__auto____7175
    invoke
    "ioc_macros.clj"
    12]
   [clojure.core.async.impl.ioc_macros$eval7174
    invokeStatic
    "ioc_macros.clj"
    12]
   [clojure.core.async.impl.ioc_macros$eval7174
    invoke
    "ioc_macros.clj"
    12]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler eval "Compiler.java" 7170]
   [clojure.lang.Compiler load "Compiler.java" 7640]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 619]
   [clojure.core.async$eval6541$loading__6738__auto____6542
    invoke
    "async.clj"
    9]
   [clojure.core.async$eval6541 invokeStatic "async.clj" 9]
   [clojure.core.async$eval6541 invoke "async.clj" 9]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler eval "Compiler.java" 7170]
   [clojure.lang.Compiler load "Compiler.java" 7640]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 3894]
   [puppetlabs.puppetdb.queue$eval6339$loading__6738__auto____6340
    invoke
    "queue.clj"
    1]
   [puppetlabs.puppetdb.queue$eval6339 invokeStatic "queue.clj" 1]
   [puppetlabs.puppetdb.queue$eval6339 invoke "queue.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler eval "Compiler.java" 7170]
   [clojure.lang.Compiler load "Compiler.java" 7640]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 703]
   [puppetlabs.puppetdb.command.dlo$eval6320$loading__6738__auto____6321
    invoke
    "dlo.clj"
    1]
   [puppetlabs.puppetdb.command.dlo$eval6320 invokeStatic "dlo.clj" 1]
   [puppetlabs.puppetdb.command.dlo$eval6320 invoke "dlo.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler eval "Compiler.java" 7170]
   [clojure.lang.Compiler load "Compiler.java" 7640]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 3894]
   [puppetlabs.puppetdb.cli.services$eval183$loading__6738__auto____184
    invoke
    "services.clj"
    1]
   [puppetlabs.puppetdb.cli.services$eval183
    invokeStatic
    "services.clj"
    1]
   [puppetlabs.puppetdb.cli.services$eval183 invoke "services.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7181]
   [clojure.lang.Compiler eval "Compiler.java" 7170]
   [clojure.lang.Compiler load "Compiler.java" 7640]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6857 invoke "core.clj" 6115]
   [clojure.core$load invokeStatic "core.clj" 6114]
   [clojure.core$load doInvoke "core.clj" 6098]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5897]
   [clojure.core$load_one invoke "core.clj" 5892]
   [clojure.core$load_lib$fn__6797 invoke "core.clj" 5937]
   [clojure.core$load_lib invokeStatic "core.clj" 5936]
   [clojure.core$load_lib doInvoke "core.clj" 5917]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 5974]
   [clojure.core$load_libs doInvoke "core.clj" 5958]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 5996]
   [clojure.core$require doInvoke "core.clj" 5996]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [puppetlabs.puppetdb.core$run_resolved invokeStatic "core.clj" 33]
   [puppetlabs.puppetdb.core$run_resolved invoke "core.clj" 31]
   [puppetlabs.puppetdb.core$run_subcommand invokeStatic "core.clj" 42]
   [puppetlabs.puppetdb.core$run_subcommand invoke "core.clj" 36]
   [puppetlabs.puppetdb.core$_main invokeStatic "core.clj" 53]
   [puppetlabs.puppetdb.core$_main doInvoke "core.clj" 51]
   [clojure.lang.RestFn applyTo "RestFn.java" 139]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.core$apply invokeStatic "core.clj" 667]
   [clojure.main$main_opt invokeStatic "main.clj" 514]
   [clojure.main$main_opt invoke "main.clj" 510]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause
  "Could not locate clojure/tools/analyzer__init.class, clojure/tools/analyzer.clj or clojure/tools/analyzer.cljc on classpath.",
  :phase :compile-syntax-check}}


-- System Information:
Debian Release: 11.0
  APT prefers testing-security
  APT policy: (500, 'testing-security'), (500, 'unstable'), (500, 'testing')
Architecture: arm64 (aarch64)

Kernel: Linux 5.10.0-7-arm64 (SMP w/1 CPU thread)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages puppetdb depends on:
ii  adduser                                    3.118
ii  dbconfig-pgsql                             2.0.19
ii  debconf [debconf-2.0]                      1.5.75
ii  default-jre-headless                       2:1.11-72
ii  init-system-helpers                        1.60
ii  libasm-java                                9.1-1
ii  libat-at-clojure                           1.2.0-1.1
ii  libbidi-clojure                            2.1.6-1
ii  libcheshire-clojure                        5.7.1-1.1
ii  libclj-digest-clojure                      1.4.9+dfsg-1
ii  libclj-http-clojure                        2.3.0-1.1
ii  libclj-stacktrace-clojure                  0.2.7-1
ii  libclj-time-clojure                        0.15.2-1
ii  libclojure-java                            1.10.2-1
ii  libcommons-compress-java                   1.20-1
ii  libcommons-lang3-java                      3.11-1
ii  libcommons-logging-java                    1.2-2
ii  libcompojure-clojure                       1.6.0-1.1
ii  libcore-async-clojure                      1.3.610-4
ii  libcore-match-clojure                      1.0.0-1
ii  libcore-memoize-clojure                    0.7.1-1
ii  libdata-priority-map-clojure               0.0.9-1
ii  libdujour-version-check-clojure            0.2.3-1
ii  libfast-zip-visit-clojure                  1.0.2-2
ii  libgeronimo-j2ee-management-1.1-spec-java  1.0.1-1.1
ii  libgeronimo-jms-1.1-spec-java              1.1.1-1
ii  libhikaricp-java                           2.7.9-1
ii  libhoneysql-clojure                        0.8.2-2
ii  libinstaparse-clojure                      1.4.7-1.1
ii  libjava-jdbc-clojure                       0.7.10-1
ii  libjava-jmx-clojure                        0.3.4-1.1
ii  libkitchensink-clojure                     3.1.1-3
ii  libmath-combinatorics-clojure              0.1.4-1.1
ii  libmath-numeric-tower-clojure              0.0.4-1.1
ii  libmetrics-clojure                         2.9.0-2.1
ii  libpantomime-clojure                       2.1.0+dfsg-2
ii  libpostgresql-jdbc-java                    42.2.22-1
ii  libprismatic-schema-clojure                1.1.12-1
ii  libpuppetlabs-http-client-clojure          1.2.0-2
ii  libpuppetlabs-i18n-clojure                 0.9.0-2
ii  libraynes-fs-clojure                       1.5.2-1
ii  libring-core-clojure                       1.6.2-4
ii  librobert-hooke-clojure                    1.3.0-4
ii  libslf4j-java                              1.7.30-1
ii  libslingshot-clojure                       0.12.2-3
ii  libspecter-clojure                         1.0.2-2.1
ii  libstockpile-clojure                       0.0.4-1.1
ii  libtools-logging-clojure                   0.2.3-6
ii  libtools-macro-clojure                     0.1.5-2
ii  libtools-namespace-clojure                 0.2.11-1.1
ii  libtrapperkeeper-clojure                   3.1.0-2
ii  libtrapperkeeper-metrics-clojure           1.3.1-2
ii  libtrapperkeeper-status-clojure            1.1.1-2
ii  libtrapperkeeper-webserver-jetty9-clojure  4.1.0-4
ii  libversioneer-clojure                      0.2.0-1
ii  lsb-base                                   11.1.0
ii  ucf                                        3.0043

puppetdb recommends no packages.

Versions of packages puppetdb suggests:
pn  postgresql          <none>
pn  postgresql-contrib  <none>

-- Configuration Files:
/etc/puppetdb/conf.d/jetty.ini changed:
[jetty]
port = 8080

/etc/puppetdb/conf.d/repl.ini changed:
[nrepl]
enabled = false
port = 8082
host = 0.0.0.0

/etc/puppetdb/logback.xml changed:
<configuration scan="true" scanPeriod="60 seconds">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %-5p [%c{2}] %m%n</pattern>
        </encoder>
    </appender>
    <appender name="F1" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/var/log/puppetdb/puppetdb.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>/var/log/puppetdb/puppetdb-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!-- each file should be at most 200MB, keep 90 days worth of history, but at most 1GB total-->
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>90</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %-5p [%c{2}] %m%n</pattern>
        </encoder>
    </appender>
    <!-- Supress internal Spring Framework logging -->
    <logger name="org.springframework.jms.connection" level="debug"/>
    <appender name="STATUS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/var/log/puppetdb/puppetdb-status.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>/var/log/puppetdb/puppetdb-status-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!-- each file should be at most 200MB, keep 90 days worth of history, but at most 1GB total-->
            <maxFileSize>200MB</maxFileSize>
            <maxHistory>90</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <!-- note that this will only log the JSON message (%m) and a newline (%n)-->
            <pattern>%m%n</pattern>
        </encoder>
    </appender>
    <!-- without additivity="false", the status log messages will be sent to every other appender as well-->
    <logger name="puppetlabs.trapperkeeper.services.status.status-debug-logging" level="debug" additivity="false">
        <appender-ref ref="STATUS"/>
    </logger>
    <root level="debug">
        <appender-ref ref="${logappender:-DUMMY}" />
        <appender-ref ref="F1" />
    </root>
</configuration>


-- debconf information:
  puppetdb/database-type: pgsql
* puppetdb/dbconfig-install: true
  puppetdb/internal/skip-preseed: false
* puppetdb/remote/newhost: db.local
  puppetdb/purge: false
* puppetdb/pgsql/admin-user: postgres
  puppetdb/dbconfig-upgrade: true
* puppetdb/db/app-user: puppet at localhost
* puppetdb/pgsql/authmethod-user: password
  puppetdb/pgsql/no-empty-passwords:
  puppetdb/install-error: retry
  puppetdb/upgrade-backup: true
* puppetdb/remote/port: 5432
  puppetdb/missing-db-package-error: abort
* puppetdb/dbconfig-remove: true
* puppetdb/db/dbname: puppet
  puppetdb/pgsql/manualconf:
  puppetdb/internal/reconfiguring: false
  puppetdb/pgsql/changeconf: false
* puppetdb/pgsql/authmethod-admin: password
  puppetdb/upgrade-error: abort
  puppetdb/dbconfig-reinstall: false
* puppetdb/remote/host: db.local
  puppetdb/remove-error: abort
* puppetdb/passwords-do-not-match:
* puppetdb/pgsql/method: TCP/IP



More information about the Pkg-puppet-devel mailing list