Keisuke MORI
keisu****@gmail*****
2012年 5月 2日 (水) 13:43:47 JST
たかだてさん、 もりと申します。 すでにご自分で解決されたようなので蛇足かもしれませんが… 事象は私の方でも確認しました。どうやら CentOS 5 / RHEL 5 付属のバージョンの perl で発生する ldirectord のバグのようですね(CentoS 6 / RHEL6 では発生しません)。 添付のパッチを本家開発コミュニティにフィードバックしようと思いますが、この修正でいかがでしょうか? 以前本家開発コミュニティ側でも、類似の事象ですでに一度修正されていたようなのですが、その後別の箇所で同じようなコードが入り込んでしまったのが原因のようです。 https://github.com/ClusterLabs/resource-agents/commit/829aed7b962e1e90f4f5e43b03373e9aa93d4032 以上、ご確認いただけると助かります。 2012年5月2日11:49 yosuke takadate <taten****@gmail*****>: > たかだてです。 > > /usr/sbin/ldirectordの構文エラーの件ですが、 > returnの中で文字列を連結する際、AF_INET6を使用しているのが > 原因になっているようです。 > (AF_INET6の条件式部分をreturnの外に出したらsyntax OKになりました) > -- > 2461: return &get_virtual($v) . " " . $v->{protocol} . ($v->{addressfamily} > == AF_INET6 ? "6" : ""); > 4828: return $v->{"protocol"} . ($v->{addressfamily} == AF_INET6?"6":"") . > ":" . &get_virtual($v); > -- > > 他に根本原因があるかもしれませんが、 > 回避方法のひとつとして。 > (あまりLinux-HAと関係なくてすみません) > > 2012年4月25日22:58 yosuke takadate <taten****@gmail*****>: > >> たかだてと申します。 >> >> お手数をおかけしますが、ご相談させ下さい。 >> pacemaker-1.0.11-1.2.2 (ldirectord-3.9.2-1.1)の/usr/sbin/ldirectordですが、 >> 実行すると以下のようなエラーが発生します。 >> >> >> ---------------------------------------------------------------------------------------------- >> # /usr/sbin/ldirectord status >> Possible unintended interpolation of @real_checked in string at >> /usr/sbin/ldirectord line 2461. >> Possible unintended interpolation of @real_checked in string at >> /usr/sbin/ldirectord line 2461. >> Possible unintended interpolation of @real_checked in string at >> /usr/sbin/ldirectord line 2461. >> Global symbol "$oldsrv" requires explicit package name at >> /usr/sbin/ldirectord line 2461. >> Global symbol "$real_service" requires explicit package name at >> /usr/sbin/ldirectord line 2461. >> (略) >> Global symbol "$r" requires explicit package name at /usr/sbin/ldirectord >> line 2461. >> Global symbol "$r" requires explicit package name at /usr/sbin/ldirectord >> line 2461. >> syntax error at /usr/sbin/ldirectord line 2811, near "$$r{url} =~ >> /(http|https):\/\/([^:\/]+)(:([^\/]+))?(" >> /usr/sbin/ldirectord has too many errors. >> >> ---------------------------------------------------------------------------------------------- >> >> ○実行環境 >> os: CentOS5.6 (2.6.18-164) >> perl: v5.8.8 >> >> 同環境でheartbeat-2.1.4の/usr/sbin/ldirectordは問題なく動作します。 >> 何か情報をお持ちの方おりますでしょうか。 >> >> よろしくお願いします。 >> > > > _______________________________________________ > Linux-ha-japan mailing list > Linux****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > -- Keisuke MORI -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: ldirectord-perl588-fix.patch 型: application/octet-stream サイズ: 1469 バイト 説明: 無し Descargar