dvd-iso を再生しようとするとmediatomb プロセスが落ちる。
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb0a70b90 (LWP 2889)]
0xffffe430 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe430 in __kernel_vsyscall ()
#1 0xb7012460 in raise () from /lib/libc.so.6
#2 0xb7013e28 in abort () from /lib/libc.so.6
#3 0xb724c628 in __gnu_cxx::__verbose_terminate_handler ()
from /usr/lib/libstdc++.so.6
#4 0xb724a515 in ?? () from /usr/lib/libstdc++.so.6
#5 0xb724a552 in std::terminate () from /usr/lib/libstdc++.so.6
#6 0xb724b1e5 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
#7 0x0812d051 in ThreadExecutor::staticThreadProc (arg=0x82761a8)
at ../src/thread_executor.cc:83
#8 0xb74fa51f in start_thread () from /lib/libpthread.so.0
#9 0xb70cb04e in clone () from /lib/libc.so.6
(gdb)
80 void *ThreadExecutor::staticThreadProc(void *arg)
81 {
82 ThreadExecutor *inst = (ThreadExecutor *)arg;
83 inst->threadProc();
84 pthread_exit(NULL);
85 return NULL;
86 }
53 void ThreadExecutor::startThread()
54 {
55 threadRunning = true;
56 pthread_create(
57 &thread,
58 NULL, // attr
59 ThreadExecutor::staticThreadProc,
60 this
61 );
62 }
ソースからのインストールの問題
ブラウザによるアクセスができなかった。
原因は sqlite3 db が存在しない場合の作成時にデッドロックしているっぽい。
原因調査は面倒だったので、正常に動作するrpm 版の
mediatomb で sqlite3 db
を作成し(/etc/mediatomb/mediatomb.db)とっておき、rpm 版を一度アンインストール。
make install でソース版インストール後、とっておいた sqlite3 db を戻すことで
回避できた。
以下、そのときのログ。/var/log/mediatomb
2011-05-18 10:41:43 WARNING: Sqlite3 database seems to be corrupt or doesn't exi
st yet.
2011-05-18 10:41:43 INFO: no sqlite3 backup is available or backup is corrupt
. automatically creating database...
2011-05-18 10:41:43 INFO: database created successfully.
2011-05-18 10:41:43 INFO: Initialized port: 50500
2011-05-18 10:41:43 INFO: Server bound to: 192.168.11.9
2011-05-18 10:41:44 INFO: MediaTomb Web UI can be reached by following this link:
2011-05-18 10:41:44 INFO: http://192.168.11.9:50500/
(gdb) bt
#0 0xffffe430 in __kernel_vsyscall ()
#1 0xb71d3d99 in __lll_lock_wait () from /lib/libpthread.so.0
#2 0xb71cf149 in _L_lock_89 () from /lib/libpthread.so.0
#3 0xb71cea52 in pthread_mutex_lock () from /lib/libpthread.so.0
#4 0x080d5a3d in MutexAutolock (this=0x81c46f8, mutex={_ptr = 0xbfcbb050},
unlocked=false) at ../src/sync.cc:190
#5 0x080c08a1 in Mutex::getAutolock (unlocked=<value optimized out>,
this=<value optimized out>) at ../src/sync.h:85
#6 SQLStorage::flushInsertBuffer (this=0x81b0598, dontLock=false)
at ../src/storage/sql_storage.cc:2366
#7 0x080c097a in SQLStorage::shutdown (this=0x81b0598)
at ../src/storage/sql_storage.cc:193
#8 0x080b1af8 in Sqlite3Storage::init (this=0x81b0598)
at ../src/storage/sqlite3/sqlite3_storage.cc:162
#9 0x080ae2a1 in Storage::getInstance () at ../src/storage.cc:63
#10 0x080a7a44 in Server::upnp_init (this=0x81b0568, iface={base = 0x81b0540},
ip_address={base = 0x0}, port=50501) at ../src/server.cc:164
#11 0x0804e3e9 in main (argc=Cannot access memory at address 0x80) at ../src/main.cc:552
(gdb)
./configure の以下のエラーのせい?
configure: WARNING: Automatic database creation not possible due to missing zlib headers/libraries
zlib-devel をインストールして、再configure
⇒ 上記のWARNはでなくなった。
⇒ この問題も発生しなくなった。
動画ファイル(mtsファイル)+".moff"というファイル名が同一ディレクトリにある場合、そのディレクトリ内のファイルは1つしか認識しない。
coLinux + mediatomb + PMB という組み合わせで使っていたところ、PMB は動画ファイルと同一
ディレクトリに .moff というファイルを作成する。
このファイルがあると、mediatomb はそのディレクトリ内のファイルを1つしか認識せず、
DLNAクライアントに1つしか通知しない。
mediatombの内部DBにも1つしか登録されていないため、内部DB登録時の不具合だと思う。
最終更新:2011年05月29日 10:11