YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-17 (水)


[一語一絵/IT系]

MediaTomb segfault / 2013-02-20 (水)

先々週、ゴールに達したMediaTomb

昨夜、久々に動画ファイルを追加登録していったらWebコンソールが反応しなくなってしまった。

yano@GT110b:~$ sudo service mediatomb restart
と再起動しても変化なし。/var/log/mediatomb.logを確認したところ設定ファイルのチェックはパスしているようなので、データベースが壊れたのかも?と思いデータベースを初期化して再起動。
yano@GT110b:~$ mysql -u root -p < ~/mysql_script/mediatomb_reset.sql
yano@GT110b:~$ mysql -u root -p mediatomb < ~/mysql_script/mediatomb_setup.sql
yano@GT110b:~$ sudo service mediatomb restart
とやって一件落着。

かと思いきや、動画ファイルを登録してたらまたWebコンソールが反応しなくなってしまった。

yano@GT110b:~$ sudo service mediatomb restart
と再起動してもやはり変化なし。

/var/log/messagesを見たところ

yano@GT110b:~$ fgrep -i mediatomb /var/log/messages
Feb 20 00:56:15 gt110b kernel: [335366.128708] mediatomb[1672]: segfault at 7fb774032738 ip 00007faf8e87d9de sp 00007faf82749e60 error 4 in libavformat.so.52.31.0[7faf8e82c000+9e000]
Feb 20 01:42:55 gt110b kernel: [338165.254856] mediatomb[24251]: segfault at 801dae6d8 ip 00007fa79a0819de sp 00007fa78ecd78d0 error 4 in libavformat.so.52.31.0[7fa79a030000+9e000]
Feb 20 01:43:53 gt110b kernel: [338223.575835] mediatomb[24285]: segfault at 800bdea68 ip 00007f632ef049de sp 00007f631f7fc8d0 error 4 in libavformat.so.52.31.0[7f632eeb3000+9e000]
Feb 20 01:44:30 gt110b kernel: [338260.963663] mediatomb[24374]: segfault at 7f8b7806be38 ip 00007f838a6199de sp 00007f837f26f8d0 error 4 in libavformat.so.52.31.0[7f838a5c8000+9e000]
Feb 20 07:24:13 gt110b kernel: [ 173.934537] mediatomb[1679]: segfault at 7f37e4070d58 ip 00007f2ff53129de sp 00007f2fe91de8d0 error 4 in libavformat.so.52.31.0[7f2ff52c1000+9e000]
Feb 20 08:49:43 gt110b kernel: [ 5286.936510] mediatomb[2547]: segfault at 7f85ac005ef8 ip 00007f7dbc9dd9de sp 00007f7dabffdc20 error 4 in libavformat.so.52.31.0[7f7dbc98c000+9e000]
という事から、libavformatsegfaultで落ちているのがわかった。

libavformat.soを探してみたところ

yano@GT110b:~$ ll `locate libavformat.so`
lrwxrwxrwx 1 root root     22 2013-01-29 05:23 /usr/lib/libavformat.so -> libavformat.so.52.31.0
lrwxrwxrwx 1 root root     22 2013-01-29 05:23 /usr/lib/libavformat.so.52 -> libavformat.so.52.31.0
-rw-r--r-- 1 root root 694880 2013-01-26 00:02 /usr/lib/libavformat.so.52.31.0
という事で、ubuntuのリポジトリパッケージ"libavformat-extra-52"だ。そういえばアップデート通知がいくつかあがっていたような…と思ってパッケージアップデートしたところ
yano@GT110b:~$ ll `locate libavformat.so`
lrwxrwxrwx 1 root root     22 2013-01-29 05:23 /usr/lib/libavformat.so -> libavformat.so.52.31.0
lrwxrwxrwx 1 root root     22 2013-02-20 12:52 /usr/lib/libavformat.so.52 -> libavformat.so.52.31.0
-rw-r--r-- 1 root root 694776 2013-02-02 16:47 /usr/lib/libavformat.so.52.31.0
と見事にアップデートされたので、しめしめこれで万事OKかと思ったものの、libavformatsegfaultで落ちる結果は変わらず、世の中それほど甘くなかった。

結局、ubuntu版のffmpegやlibav*をすべてremoveした後、x264-snapshot-20130219-2245、ffmpeg-1.1.2、ffmpegthumbnailer-2.0.8、xcb-proto-1.8、libxcb-1.9、vlc-2.0.5を洗いざらいtar-ballから入れ直したあと、先々週のmediatomb-0.12.1をrebuildしたところMediaTombは無事復活した。

ちなみにxsltproc、libxslt1.1、libpthread-stubs0、libpthread-stubs0-dev、libxau-dev、x11proto-core-devはリポジトリからでOK。

今度はffmpegのアップデートに伴い、mp4エンコードがコケるようになったので、その対処が必要なり。

【参照】
●MediaTomb - Free UPnP MediaServer http://mediatomb.cc/
●FFmpeg http://www.ffmpeg.org/
●UbuntuUpdates http://www.ubuntuupdates.org/
Package "libavutil-extra-49" (lucid 10.04)
Package "libavcodec-extra-52" (lucid 10.04)
Package "libavformat-extra-52" (lucid 10.04)