Bug #1609
openPlugin startet nicht: WARNING: The following plugins have been left out due to really binary incompatibility: upnp.
Added by Anonymous about 11 years ago. Updated almost 11 years ago.
0%
Description
Ubuntu 12.04 - Testing Quellen aus yaVDR.
Es scheint nicht nur mir so zu gehen:
[[http://www.vdr-portal.de/board16-video-disk-recorder/board99-distributionen/board96-yavdr/120372-yavdr-testing-vdr-plugin-upnp-defekt/index2.html]]
Gruß
Updated by stauraum about 11 years ago
Das Problem besteht auch bei 12.04 x86_64 mit Stable-Quellen:
WARNING: The following plugins have been left out due to really binary incompatibility: upnp.
Zeitgleich mit einem Start des VDR taucht im syslog folgende Meldung auf. Der VDR stürzt dann ab.
Nov 12 14:04:35 bruno vdr: [8148] ERROR: thread 8179 won't end (waited 10 seconds) - canceling it...
Nov 12 14:04:44 bruno kernel: [406979.701699] vdr[27708]: segfault at 0 ip 00007f62292edeef sp 00007fffb7fa8d80 error 4 in libtntdb.so.2.0.0[7f62292e2000+1e000]
root@bruno ~ # vdr -V
Nov 12 14:10:07.185 [general.debug] using new 1.7.11+ capture code
vdr (2.0.3/2.0.0) - The Video Disk Recorder
quickepgsearch (0.0.1) - Quick search for broadcasts
epgsearch (1.0.1.beta5) - search the EPG for repeats and more
upnp (1.0.0) - UPnP/DLNA compliant Media Server functionality for VDR
streamdev-server (0.6.0-git) - VDR Streaming Server
epgsearchonly (0.0.1) - Direct access to epgsearch's search menu
wirbelscan (0.0.7) - DVB and pvrinput channel scan for VDR
xvdr (0.9.9) - XVDR Server
live (0.3.0) - Live Interactive VDR Environment
conflictcheckonly (0.0.1) - Direct access to epgsearch's conflict check menu
vnsiserver3 (0.9.1) - VDR-Network-Streaming-Interface (VNSI) Server
[1] 29110 segmentation fault (core dumped) vdr -V
Updated by christoph almost 11 years ago
Ich denke der Segfault wird im cMediaServer::~cMediaServer Destructor ausgelöst (vgl Backtrace):
------------------------------------------------------------------------------------------------------------------------
| Problematischer Destructor:
------------------------------------------------------------------------------------------------------------------------
try {
mConnection.execute("VACUUM");
} catch (const std::exception& e) {
esyslog("UPnP\tFailed to vacuum database: '%s'", e.what());
}
------------------------------------------------------------------------------------------------------------------------
Das eigentliche Problem war (zumindest auf meiner Box), dass libtntdb ohne tntdb-sqlite4 installiert war und somit, die Datenbankkommunikation nicht funktioniert.
| Syslog
------------------------------------------------------------------------------------------------------------------------
UPnP#011Exception occurred while connecting to database 'sqlite:/metadata.db': /usr/lib/tntdb/libtntdb4-sqlite.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
| Backtrace
------------------------------------------------------------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3cfe82d in tntdb::Connection::execute(std::string const&) () from /usr/lib/libtntdb.so.4
(gdb) bt
#0 0x00007ffff3cfe82d in tntdb::Connection::execute(std::string const&) () from /usr/lib/libtntdb.so.4
#1 0x00007ffff4782a73 in upnp::cMediaServer::~cMediaServer (this=0x7ffff49e3b20 <upnp::cMediaServer::GetInstance()::server>, _in_chrg=<optimized out>) at server/server.cpp:69
#2 0x00007ffff62cf071 in __run_exit_handlers (status=2, listp=0x7ffff66546a8 <_exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:77
#3 0x00007ffff62cf0f5 in __GI_exit (status=<optimized out>) at exit.c:99
#4 0x00007ffff62b4dec in __libc_start_main (main=0x463d50 <main(int, char**)>, argc=5, ubp_av=0x7fffffffdad8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffdac8) at libc-start.c:294
#5 0x00000000004679fe in _start ()
(gdb) frame 1
#1 0x00007ffff4782a73 in upnp::cMediaServer::~cMediaServer (this=0x7ffff49e3b20 <upnp::cMediaServer::GetInstance()::server>, __in_chrg=<optimized out>) at server/server.cpp:69
- 69 mConnection.execute("VACUUM");*
------------------------------------------------------------------------------------------------------------------------
Updated by christoph almost 11 years ago
Bitte entschuldigt diese hässliche Formatierung, aber igendwie scheint man das in diesem Bugtracker nicht mehr korrigieren zu können?!
Updated by christoph almost 11 years ago
Ich habe gerade das Plugin wieder erfolgreich am Laufen auf einem Ubuntu 13.10 System. Es war sehr schwer den eigentlichen Fehler zu finden:
Das Plugin benötigt beim Start des VDR zwingend den Parameter --db-dir, sonst quitiert es ohne Fehlermeldung den gesamten VDR. Das liegt daran, dass ohne die Angabe des Parameters versucht wird eine Datenbank in '/metadata.db' anzulegen.