A solução foi atualizar glibc
. Veja https://bugzilla.redhat.com/show_bug.cgi?id=752122
para detalhes
Acabei de atualizar o fantoche para a versão 3.2.1 e, ao executar o agente, recebo um erro dizendo "Instrução ilegal (core dumping)". Aqui estão alguns detalhes:
O mestre e o agente são executados na mesma máquina
#cat /etc/redhat-release
CentOS release 6.2 (Final)
#uname -r
3.9.3-x86_64-linode33
#ruby --version
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
O RPM instalado é "puppet-3.2.1-1.el6.noarch.rpm"
No entanto, quando eu executo o agente fantoche com a mesma versão em outro host, tudo corre bem. O problema é apenas durante a execução do agente na mesma máquina que o mestre. Alguma ideia do que está acontecendo?
Se a instalação do Ruby e suas bibliotecas dependentes não forem modificadas, há uma boa chance de você ter uma biblioteca em seu caminho de pesquisa da biblioteca que entre em conflito com a versão com a qual o Ruby foi compilado. Isso é muito comum se, por exemplo, você criou uma biblioteca como zlib ou openssl e a soltou em /usr/local/lib
em vez de colocá-la em um prefixo personalizado e definir um RPATH
/ LD_LIBRARY_PATH
para os programas que você precisa compilar contra isso.
Genericamente, a melhor maneira de diagnosticar um segfault é fazer o kernel despejar um arquivo principal (veja: ulimit
e core_pattern
sysctl), e então executá-lo através de um depurador como o GDB. Pode dar-lhe um backtrace que, se nada mais, pode facilmente apontar você exatamente qual chamada de função da biblioteca é a culpa.
Tags puppet centos6 puppetmaster