【現象】
Ⅰ.Firefoxを起動後、操作中や放置中にFirefoxが停止してしまう
ちなみにこの現象は MIXiアプリ 起動中に起きることが多い
Ⅱ.Firefox 起動中、操作をしていなくとも徐々に重くなる
【環境】
□検証機A
OS: CentOS 5.3
Firefox: 3.0.18
flash(plugin): Adobe Flash Player 10(flash-plugin-10.0.42.34-release)
CPU: Core 2 Duo 3GHz
memory: 4G
□検証機B
OS: CentOS 5.3
Firefox: 3.0.18
flash(plugin): Adobe Flash Player 10(flash-plugin-10.0.42.34-release)
CPU: Pentium 4 2.40GHz
memory: 2G
Firefox を起動後、タブを復元させる
タブは全部で10個程で flash が使用させているタブは6個
尚、検証機B では本現象は発生しない
【エラーメッセージの内容】
Firefox が落ちる(停止する)度に内容が違う(xxxxはエラーコード)
※対応前、対応後問わず、出力されたエラーを記載
・大抵の場合はこのメッセージ
/usr/lib/firefox-3.0.14/run-mozilla.sh: line 131: xxxx セグメンテーション違反です “$prog” ${1+”$@”}
・Firefox を立ち上げた瞬間に落ちた時のメッセージ
(Gecko:6343): Gdk-CRITICAL **: gdk_colormap_get_screen: assertion `GDK_IS_COLORMAP (cmap)’ failed
(Gecko:6343): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)’ failed
(Gecko:6343): Gdk-CRITICAL **: gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)’ failed
/usr/lib/firefox-3.0.14/run-mozilla.sh: line 131: 6343 セグメンテーション違反です “$prog” ${1+”$@”}
・環境変数が “GTK_IM_MODULE=scim-bridge”(デフォルト) の時で、Firefox が落ちた時に “/var/log/messege” に出力されたログ
Feb 27 21:08:42 localhost scim-bridge: Panel client has not yet been prepared
Feb 27 21:08:42 localhost Panel client has not yet been prepared
Feb 27 21:08:42 localhost scim-bridge: Panel client has not yet been prepared
Feb 27 21:08:42 localhost Panel client has not yet been prepared
・”unset GTK_IM_MODULE” 設定反映後、Firefox が落ちた時のメッセージ
(Gecko:xxxx): Gdk-WARNING **: shmat failed: error 12 (メモリを確保できません)
/usr/lib/firefox-3.0.18/run-mozilla.sh: line 131: xxxx セグメンテーション違反です “$prog” ${1+”$@”}
・メモリキャッシュの量を “65536” 指定後に不定期で発生したエラー(Firefox は落ちない)
※検証機Bに関しては常にこれが出てる
(Gecko:xxxx): Gtk-CRITICAL **: gtk_drag_set_icon_pixbuf: assertion `GDK_IS_DRAG_CONTEXT (context)’ failed
(Gecko:xxxx): Gtk-CRITICAL **: gtk_drag_set_icon_pixbuf: assertion `GDK_IS_DRAG_CONTEXT (context)’ failed
・メモリキャッシュの量を “32768” 指定後に不定期で発生したエラー(Firefox は落ちない)
(Gecko:3311): Gtk-CRITICAL **: gtk_drag_set_icon_pixbuf: assertion `GDK_IS_DRAG_CONTEXT (context)’ failed
terminate called after throwing an instance of ‘std::bad_alloc’
what(): St9bad_alloc
/usr/lib/firefox-3.0.18/run-mozilla.sh: line 131: xxxx アボートしました”$prog” ${1+”$@”}
・メモリキャッシュの量を “16384” 指定後に不定期で発生したエラー(Firefox は落ちない)
(Gecko:3150): Gtk-CRITICAL **: gtk_drag_set_icon_pixbuf: assertion `GDK_IS_DRAG_CONTEXT (context)’ failed
/usr/lib/firefox-3.0.18/run-mozilla.sh: line 131: xxxx セグメンテーション違反です “$prog” ${1+”$@”}
【Firefoxエラーメッセージ確認方法】
1.Firefox を GUI からではなく、ターミナルより “firefox”コマンドで起動する
2.異常終了した時にエラーメッセージが返ってくる
【対応】
現象Ⅰを優先的に対応する
1.Firefox のバージョンを “yum -y install firefox” にてアップデートする
→”現象Ⅰ” 依然変わらず
2.Firefox をアンインストール後、Firefox の関連するディレクトリ(“/root/.mozilla/firefox” のみ) をすべて削除し
再度、”yum -y install firefox” にてインストールする
→”現象Ⅰ” 依然変わらず
3.Firefox の依存関係のチェック
> rpm -q –whatrequires firefox-3.*.*-*.el5.centos
firefox-3.*.*-*.el5.centos を必要とするパッケージは存在しません。
→Firefox に依存関係のあるパッケージは無いとのこと
4.インターネットで調べた結果、SCIMコンパイル 時と
現在のgcc、libstdc++のバージョンを合わせる必要があるとのこと
SCIM がインストールされていることを確認
> rpm -qa | grep scim
scim-1.4.4-41.el5
~省略
SCIM をアンインストール(依存関係があるパッケージも含む)
> rpm -e scim-1.4.4-41.el5 scim-bridge-0.4.5-8.el5
scim-anthy-1.2.0-6.el5 scim-qtimm-0.9.4-5 scim-bridge-gtk-0.4.5-8.el5
SCIMコンパイル 時のバージョンがわからない為、SCIM を最新にする
> yum -y install scim
> yum -y install scim-anthy(日本語入力時必須)
→”現象Ⅰ” 依然変わらず
5.インターネットで調べた結果、以下の環境変数をそれぞれ設定し、状態をみる
(ひとつずつ設定しては元に戻して次を設定する)
①> export GTK_IM_MODULE=uim
②> export GTK_IM_MODULE=xim
③> export GTK_IM_MODULE=scim
④> unset GTK_IM_MODULE
⑤> export XLIB_SKIP_ARGB_VISUALS=1
→”export GTK_IM_MODULE=scim” の設定で “現象Ⅰ” は発生しにくくなったような・・・
検証機Bは “GTK_IM_MODULE=scim-bridge” なのに本現象が発生しないので、直接関係ないのかも
6.”/root/.mozilla/firefox/he5thoyk.default/prefs.js” を vi にて開き、以下の値を追記する
メモリキャッシュの量を指定
user_pref(“browser.cache.memory.capacity”, 16384);
戻る・進むの最大保存履歴数を変更する
user_pref(“browser.sessionhistory.max_total_viewers”, -1);
→”現象Ⅰ” はさらに発生しにくくなった
しかし、値を微調整しても “現象Ⅰ” が完全に発生しなくなることは無かった
→Firefox が重くなる、”現象Ⅱ” は発生しなくなった
7.”firefox -g” コマンドでデバックモードにて詳細を確認する
→”現象Ⅰ” が発生したとき、ターミナルに以下のメッセージが出力された
Program received signal SIGSEGV, Segmentation fault.
0x089b85cf in ?? () from /usr/lib/flash-plugin/libflashplayer.so
8.さらにインターネットで調べた結果、libflashplayer.so は、libcurl.so を必要とし
バージョンが 7.19.5-1vl5 ならFirefox が落ちないらしいので、curl をアップデートする
① “yum” では最新版をダウンロードできないので、“http://curl.haxx.se/download.html”” から直接ダウンロードする
② “cd /root/Desktop/” (ダウンロード保存先(デフォルト))
③ “tar zxvf curl-7.19.5.tar.gz”
④ cd curl-7.19.5
⑤ ./configure
⑥ make
⑦ make install
→ “現象Ⅰ” は “6” の時よりさらに発生しにくくなった
【結論】
結局、本現象は完全に解決しなかった
Adobe Flash Player 10 では本現象が起こるらしい(?)
あと Firefox って、使用中結構メモリを食うみたいね
「突然落ちる(“現象Ⅰ”)」と「動作が重い(“現象Ⅱ”)」のは直接は関係無いのかもしれないけど、どちらも原因はメモリとかブラウザのキャッシュ関係のような気がする
Firefox のタブが増えれば増えるほど、落ちる可能性は高くなる
あと、ブラウザの「戻る」を頻繁にやっていても落ちやすい
あまりにも不安定だから「Opera」使おうと思ったけど、MIXIアプリ の操作が一部できなくなるんだよな?
→後日、Firefox をアップデート(3.6.7)したら、本現象は発生しなくなった