あるソフトを使っていたら, 私だけエラーが起こる.
同じマシン (RHEL 6がインストールされたマシンをリモートログインで共有していた) を使っている人に聞くと, 同様のエラーは起こらないという.
私とその人との違いは, ログインシェル. 私は bash, その人は tcsh を使っていた.
ログインシェルを tcsh に変更してみると, このエラーは起こらなくなった. しかし, ログインシェルを tcsh にした後, bash を起動し, その中でそのソフトを起動するとエラー.
こんな時には環境変数が原因だろうと考え, diff をとってみた.
> env | sort > tcsh-env.out
> bash
$ env | sort > bash-env.out
$ diff tcsh-env.out bash-env.out
ここで分かったのは, bash 環境では
MALLOC_PERTURB_
が設定されているということ.
この環境変数を消すと, エラーは起こらなくなった.
この環境変数がどこで設定されているのかを探ってみると,
debugmode というパッケージが原因であることが分かった.
$ rpm -ql debugmode
/etc/profile.d/debug.csh
/etc/profile.d/debug.sh
/etc/sysconfig/debug
私の使っている bash では,
/etc/profile.d
にある設定を律儀に読んでいたのでエラーが起こり,
彼の tcsh (の設定である .cshrc) はこのディレクトリを無視していたのでエラーが起こっていなかったらしい.
今回使っていたマシンは, パッケージの選択を面倒に思ったのかフルインストールされていたのだが,
どんなパッケージでも闇雲にインストールしてしまうのはダメだという例になった.