fantoche 3.2.4: nível de pilha muito profundo

fantoche 3.2.4: nível de pilha muito profundo

Estou trabalhando em um projeto de refatoração para um grande repositório de módulos fantoches personalizados. Isso inclui uma atualização do fantoche 2.x para 3.2.4. Quando finalmente atingi a massa crítica e comecei a testar algumas das alterações, rapidamente encontrei o seguinte erro:

Info: Retrieving plugin
Info: Loading facts in /etc/puppet/modules/base/lib/facter/elversion.rb
Info: Loading facts in /etc/puppet/modules/base/lib/facter/site.rb
Info: Loading facts in /var/lib/puppet/lib/facter/elversion.rb
Info: Loading facts in /var/lib/puppet/lib/facter/site.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: stack level too deep at /etc/puppet/manifests/nodes.pp:9 on node puppet
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Depois de examinar vários relatórios de bugs de fantoches, decidi tentar simplificar o problema. Reduzi o problema a duas classes, definidas como tal:

class base::includes { }

e

class prod_secure::base::includes inherits base::includes { }

Um nó que inclui nada além de prod_secure::base::includes produz a saída de erro listada acima. O único aviso possivelmente relacionado que vejo puppet-linté:

WARNING: class inherits across module namespaces on line 1

... mas isso é apenas um aviso, e não deveria travar o fantoche durante a execução de um agente, eu não acho. Alguma ideia? É possível que o esquema de namespace que configurei não seja compatível com o fantoche?

ATUALIZAR

Decidi levar o teste um passo adiante e mudar o nome da classe herdada. A nova definição é:

class prod_secure::base2::includes2 inherits base::includes { }

O resultado é o mesmo... stack level too deep. Parece-me que esse problema não tem nada a ver com namespace.

ATUALIZAÇÃO 2

Durante a rodada anterior de depuração, perdi um detalhe importante:

Wed Sep 11 11:25:09 -0400 2013 Puppet (info): Caching node for puppet
Wed Sep 11 11:25:09 -0400 2013 Puppet (debug): importing '/etc/puppet/manifests/nodes.pp' in environment production
Wed Sep 11 11:25:09 -0400 2013 Puppet (debug): importing '/etc/puppet/manifests/config_file.pp' in environment production
Wed Sep 11 11:25:10 -0400 2013 Puppet (debug): importing '/etc/puppet/modules/prod_secure/manifests/base2/includes2.pp' in environment production
Wed Sep 11 11:25:10 -0400 2013 Puppet (debug): Automatically imported prod_secure::base2::includes2 from prod_secure/base2/includes2 into production
Wed Sep 11 11:25:10 -0400 2013 Puppet (debug): importing '/etc/puppet/modules/prod_secure/manifests/base/includes.pp' in environment production
Wed Sep 11 11:25:10 -0400 2013 Puppet (debug): Automatically imported prod_secure::base::includes from prod_secure/base/includes into production
Wed Sep 11 11:25:10 -0400 2013 Puppet (err): stack level too deep at /etc/puppet/manifests/nodes.pp:9 on node puppet
Wrapped exception:
stack level too deep

Não sei dizer por que, mas ele ainda estava tentando carregar prod_secure::base::includes, e essa era a entrada ofensiva. Depois de remover totalmente o arquivo, o teste foi aprovado. Estou de volta à teoria do namespace ...

Responder1

Você pode tentar o fantoche 3.2.3.

3.2.2 tinha#21376problema semelhante, mas foi corrigido em 3.2.3, pode ser regressão

informação relacionada