[Linux-ha-jp] pacemaker-1.0.11 /usr/sbin/ldirectord

Back to archive index

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 



Linux-ha-japan メーリングリストの案内
Back to archive index