Package: puppetserver Version: 7.9.5-2 Severity: normal Tags: l10n upstream
Dear Maintainer(s), after upgrading from puppet-master to puppetserver, we noticed that Puppet runs on certain agents did not terminate anymore and left a Java process on the Puppet server which was using ~100% of one CPU core. After some debugging and a few detours, I noticed that this seems to be ultimately caused by a bug(?) in JRuby (I've reported this to the JRuby upstream at [1] already) which is triggered by Puppet Server when the system locale is set to one of at least some locales other than C/English (via /etc/default/locale) - which is de_CH.UTF-8 in our case. I'm also attaching a small archive with a Puppet module which can be used to trigger this issue - in short, a 'file' resource which recursively copies a structure containing a directory and a symbolic link to this directory results in an open() on the directory followed by a read() in the Puppet Server code which never returns, but apparently loops endlessly somewhere (Puppet Server seems to expect it to throw an exception in this case if I'm interpreting its logic correctly). My solution for this problem was the addition of a 'LANG="C"' line to /etc/default/puppetserver and restarting it to ensure that Puppet Server always runs with a defined locale that doesn't make it trigger the problematic JRuby behavior. Afterwards, the Puppet agent runs terminated again and were successful. I'm not sure if this is the right place to report or fix this issue, but until this gets fixed in JRuby (if it even is fixable with a reasonable amount of effort), applying a workaround in the Debian package's debian/puppetserver.default or debian/puppetserver.service might prevent others from running into the same issue when using the packages from Debian. Cheers, Manfred [1] https://github.com/jruby/jruby/issues/8096 -- System Information: Debian Release: 12.4 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-17-amd64 (SMP w/4 CPU threads; PREEMPT) Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=de_CH.utf8, LC_CTYPE=de_CH.utf8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: unable to detect Versions of packages puppetserver depends on: ii default-jre-headless 2:1.17-74 ii facter 4.3.0-2 ii hiera 3.10.0-1 ii jruby 9.3.9.0+ds-8 ii libclj-time-clojure 0.15.2-2 ii libclj-yaml-clojure 0.7.2-1 ii libclojure-java 1.11.1-2 ii libcomidi-clojure 0.3.2-2 ii libcommons-exec-java 1.3-2 ii libcommons-io-java 2.11.0-2 ii libcommons-lang-java 2.6-10 ii libdropwizard-metrics-java 3.2.6-1 ii libdujour-version-check-clojure 0.2.3-1 ii libjruby-utils-clojure 4.0.3-4 ii libkitchensink-clojure 3.2.1-1 ii libliberator-clojure 0.15.3-1 ii libprismatic-schema-clojure 1.2.0-4 ii libpuppetlabs-http-client-clojure 2.1.1-1 ii libpuppetlabs-i18n-clojure 0.9.2-2 ii libpuppetlabs-ring-middleware-clojure 1.3.1-3 ii libraynes-fs-clojure 1.5.2-1 ii libsemver-clojure 0.3.0-2 ii libshell-utils-clojure 1.0.2-3 ii libslingshot-clojure 0.12.2-3 ii libssl-utils-clojure 3.5.0-2 ii libtrapperkeeper-authorization-clojure 1.0.0-4 ii libtrapperkeeper-clojure 3.2.0-4 ii libtrapperkeeper-comidi-metrics-clojure 0.1.2-2 ii libtrapperkeeper-filesystem-watcher-clojure 1.2.2-3 ii libtrapperkeeper-metrics-clojure 1.5.0-5 ii libtrapperkeeper-scheduler-clojure 1.1.3-7 ii libtrapperkeeper-status-clojure 1.1.1-4 ii libtrapperkeeper-webserver-jetty9-clojure 4.4.1-5 ii libyaml-snake-java 1.33-2 ii puppet-agent 7.23.0-1 ii ruby 1:3.1 ii ruby-deep-merge 1.1.1-2 ii ruby-fast-gettext 2.0.3-2 ii ruby-gettext 3.3.3-2 ii ruby-hocon 1.3.1-2 ii ruby-locale 2.1.3-1 ii ruby-puppet-resource-api 1.8.16-2 ii ruby-puppetserver-ca-cli 2.4.0-4 ii ruby-semantic-puppet 1.0.4-1 ii ruby-text 1.3.1-1 Versions of packages puppetserver recommends: ii puppet-module-puppetlabs-augeas-core 1.1.2-1 ii puppet-module-puppetlabs-cron-core 1.1.0+dfsg1-1 pn puppet-module-puppetlabs-host-core <none> pn puppet-module-puppetlabs-mount-core <none> pn puppet-module-puppetlabs-selinux-core <none> ii puppet-module-puppetlabs-sshkeys-core 2.3.0-1 puppetserver suggests no packages. -- no debconf information
freezer.tar.gz
Description: application/gzip