web-dev-qa-db-ja.com

Puppetエージェント(バージョン3.2.1)の実行中にエラー「不正な命令(コアダンプ)」

Puppetをバージョン3.2.1にアップグレードしたところ、エージェントを実行すると、「不正な命令(コアダンプ)」というエラーが表示されます。詳細は次のとおりです。

マスターとエージェントの両方が同じマシンで実行されます

#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]

インストールされているRPMは"puppet-3.2.1-1.el6.noarch.rpm"

ただし、同じバージョンのpuppetエージェントを別のホストで実行すると、すべてうまくいきます。問題は、マスターと同じマシンでエージェントを実行しているときにのみ発生します。何が起こっているのか考えていますか?

2
aqs

解決策は、glibcをアップグレードすることでした。見る https://bugzilla.redhat.com/show_bug.cgi?id=752122 詳細については

1
aqs

Rubyインストールとその依存ライブラリが変更されていない場合、ライブラリ検索パスにバージョンと競合するライブラリがある可能性がありますRuby wasこれは、たとえば、zlibやopensslのようなライブラリを構築し、カスタムプレフィックスに入れて、プログラムにRPATH//usr/local/libを設定する代わりに、LD_LIBRARY_PATHにドロップした場合に非常に一般的です。それに対してコンパイルする必要があります。

一般に、セグメンテーション違反を診断する最良の方法は、カーネルにコアファイルをダンプさせ(ulimitおよびcore_patternsysctlを参照)、GDBなどのデバッガーで実行することです。それはあなたにバックトレースを与えることができ、それは他に何もないとしても、どのライブラリの関数呼び出しが原因であるかを正確に簡単に示すことができます。

0
jgoldschrafe