puppet 3.2.4: nível de pilha muito profundo

3

Estou trabalhando em um projeto de refatoração para um grande repositório de módulos personalizados de fantoches. Isso inclui uma atualização do fantoche 2.x para 3.2.4. Quando finalmente atingi 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 analisar vários relatórios de bugs de fantoches, decidi tentar simplificar o problema. Limitei o problema a duas classes, definidas como:

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 em puppet-lint é:

WARNING: class inherits across module namespaces on line 1

... mas isso é apenas um aviso, e não deveria travar fantoche em uma corrida de agente, eu não pensaria. Alguma ideia? É possível que o esquema de namespacing que configurei não seja suportado pelo fantoche?

UPDATE

Eu 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 esta questão não tem nada a ver com o namespace.

UPDATE 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

Eu não posso dizer que tenho certeza do porquê, mas ainda estava tentando carregar o prod_secure :: base :: includes, e essa foi a entrada ofensiva. Depois de remover esse arquivo completamente, o teste foi aprovado. Estou de volta à teoria do namespace ...

    
por ajk8 06.09.2013 / 13:37

1 resposta

0

Você pode querer experimentar o fantoche 3.2.3.

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

    
por 12.09.2013 / 18:23