Проверено на стенде Alt Server p11 x86_64, обновленный до Sisyphus. Описание проблемы: В Sisyphus служба puppetserver (8.4.0) не может обработать ни одного запроса от puppet agent из-за несовместимости встроенного рантайма JRuby с установленной версией gem-multi-json (1.21.1). Любой запрос клиента (получение ноды, каталога, сохранение отчета) падает с кодом HTTP 500 Internal Server Error: (NoMethodError) undefined method `[]' for Fiber:Class Причина: Пакет gem-multi-json в версии 1.21.1 использует метод Fiber.[] (Fiber-local storage, появившийся в Ruby 3.0+): /usr/lib/ruby/gemie/gems/multi_json-1.21.1/lib/multi_json.rb:128: def adapter override = Fiber[:multi_json_adapter] return override if override @adapter ||= use(nil) end Исполняющая среда JRuby внутри puppetserver-8.4.0 не имеет метода `[]' у класса `Fiber`. Так как модуль MultiJson вызывается puppetserver при любой сериализации и десериализации JSON (включая формирование ответов об ошибках), сервер падает сразу при приёме первого же запроса от агента. Пакеты на стенде: - puppetserver-8.4.0-alt4 - gem-puppet-8.11.0-alt0.1 - gem-multi-json-1.21.1-alt1 - java-25-openjdk-headless-25.0.4.1.1-alt1 Шаги для воспроизведения: 1. На Master (Sisyphus): hostnamectl set-hostname puppetmaster echo "$(ip -4 route get 1 | awk '{print $7}') puppet puppetmaster" >> /etc/hosts apt-get update && apt-get install -y puppetserver puppetserver-ca puppet cat << 'EOF' > /etc/puppet/puppet.conf [main] server = puppet ca_server = puppet EOF systemctl enable --now puppetserver 2. На Client (Sisyphus): hostnamectl set-hostname puppetclient echo "<IP_MASTER> puppet" >> /etc/hosts apt-get update && apt-get install -y puppet cat << 'EOF' > /etc/puppet/puppet.conf [main] server = puppet EOF 3. Воспроизведение: - На клиенте: puppet agent -t (генерация CSR) - На мастере: puppetserver ca sign --all (подписание сертификата) - На клиенте: puppet agent -t (запрос каталога) Фактический результат: На клиенте: Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 500 on SERVER: Internal Server Error: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `[]' for Fiber:Class Error: Server Error Notice: Requesting catalog from puppet:8140 (...) Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Internal Server Error: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `[]' for Fiber:Class Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run Error: Could not send report: Error 500 on SERVER: Internal Server Error: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `[]' for Fiber:Class В логе сервера /var/log/puppetserver/puppetserver.log: ERROR [puppetserver] Puppet Server Error: Could not intern from json: undefined method `[]' for Fiber:Class /usr/lib/ruby/gemie/gems/multi_json-1.21.1/lib/multi_json.rb:128:in `adapter' org/jruby/RubyKernel.java:2119:in `public_send' /usr/lib/ruby/gemie/gems/multi_json-1.21.1/lib/multi_json.rb:298:in `block in MultiJson' /usr/lib/ruby/gemie/gems/puppet-8.11.0/lib/puppet/util/json.rb:59:in `load' Ожидаемый результат: Puppetserver успешно обрабатывает запросы агента и отдает скомпилированный каталог. Возможные пути решения: 1. Обновить puppetserver и встроенный JRuby до версии, поддерживающей спецификацию Ruby 3.0+ (включая методы Fiber-storage). 2. Либо до обновления JRuby обеспечить полифил / патч совместимости для вызовов Fiber[:key] внутри окружения puppetserver.