System locale on Cluster nodes
私の環境ではなかったんですが、2-node cluster でテストをしていて、コマンドのメッセージが文字化けしているという報告を受けました。最初は気づかずに、マシンのメッセージファイルを調べていたんですが、原因はさにあらず。クラスターを組んでいる互いのマシンが、違うシステムロケールの設定を持っていたためでした。
ローカライズの際に、daemon のメッセージというのは、結構扱いが難しい所だと思うのですが、どうでしょう。/etc/default/init に従って init のロケールが設定されて、各 daemon で特別設定されていなければ、このロケール環境が引き継がれるわけですが、log に出るとコンソールで読めなかったりとか、しますよね。他のエンコードを使っているプログラムからログが書き込まれると、マルチリンガルなファイルになってしまったりして。メッセージを翻訳しない、と言う手もあるにはあるんですが、library に入っているものもあるし、どこまで翻訳しないのか、というのは難しい所です。本来は daemon の起動の際に、LC_MESSAGES をきちんと設定するのが、本当なのかもしれません。
今回の問題は、rgmd daemon のメッセージが、もう片方のクラスターノードから来てるためだと思うんですが、そのクラスターノードを落としたり、システムロケールを設定しなおせば、目の前でコマンドを叩いているマシンの daemon からメッセージが来て、表示は直ります。各クラスタノードは、同じシステムロケールを使わないといけないワケなんです。将来的には直したいですね。
