DevSecOpsARTIGO

Erro no Puppet: Could not retrieve catalog from remote server: Error 400 on SERVER: stack level too deep on node algumacoisa.pp

Conheça um patch submetido que parece funcionar nesse caso.

Como um usuário Puppet, você pode se deparar com o seguinte erro.

~$ puppet agent -t
Info: Retrieving plugin
Info: Loading facts in /etc/puppet/modules/firewall/lib/facter/iptables_persistent_version.rb
Info: Loading facts in /etc/puppet/modules/firewall/lib/facter/ip6tables_version.rb
Info: Loading facts in /etc/puppet/modules/firewall/lib/facter/iptables_version.rb
Info: Loading facts in /etc/puppet/modules/vmwaretools/lib/facter/vmwaretools_version.rb
Info: Loading facts in /etc/puppet/modules/postgresql/lib/facter/postgres_default_version.rb
Info: Loading facts in /etc/puppet/modules/concat/lib/facter/concat_basedir.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/iptables_persistent_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/ip6tables_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/vmwaretools_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/postgres_default_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/iptables_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: stack level too deep on node hostname.tld
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

O erro “Error 400 on SERVER: stack level too deep on node” pode ser causado por muitas coisas. A mais provável delas parece ser este relato de bug: Puppet master falha com o erro ‘stack level too deep’ quando o storeconfigs = true no stack rails 3.1.0.

Um patch submetido parece funcionar nesse caso.

--- resource.rb.old	2012-07-24 12:56:33.558553439 -0500
+++ resource.rb	2012-07-24 12:57:19.697566347 -0500
@@ -84,7 +84,11 @@
   end

   def [](param)
-    super || parameter(param)
+    if param == 'id'
+      super
+    else
+      super || parameter(param)
+    end
   end

   # Make sure this resource is equivalent to the provided Parser resource.

O arquivo é /usr/lib/ruby/site_ruby/1.8/puppet/rails/resource.rb, Edite o arquivo de acordo com o patch acima e reinicie o seu Puppet Master. Além disso, cheque a versão na qual a sua gem activerecord está.

~$ gem list | grep activerecord
activerecord (3.0.11, 3.0.10)

Certifique-se de que apenas a versão 3.0.10 esteja instalada.

~$ gem install activerecord -v 3.0.10

Se uma nova gem for instalada, reinicie o Puppet Master novamente.

** Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://mattiasgeniar.be/2013/06/13/puppet-error-could-not-retrieve-catalog-from-remote-server-error-400-on-server-stack-level-too-deep-on-node-something-pp/#more-4013

Trabalha com programação de linguagens e servidores há mais de 10 anos. Atualmente, trabalha na Nucleus como desenvolvedor e engenheiro de sistemas. Seus interesses incluem Linux, Apache, MySQL e PHP.

Ver perfil