VDR, Timer-Konfliktprüfung

Sound, Digitalkameras, TV+Video und Spiele.
dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 28.01.2021 20:34:46

Danke, jetzt passt das:
Jan 28 18:48:21 tv vdr: [670] found 2 DVB devices
Jan 28 18:48:21 tv vdr: [670] using only 1 DVB device

Ich habe mir jetzt auch das syslog von heute Vormittag angeschaut. Es ist eindeutig epgsearch, das nach dem dritten Timer einen segfault verursacht.
Jan 28 09:02:27 tv kernel: [ 4474.732567] vdr[1333]: segfault at 131 ip 00007f113c7d5f75 sp 00007f10f7ff9520 error 4 in libvdr-epgsearch.so.2.4.0[7f113c785000+fc000]
Jan 28 09:02:27 tv kernel: [ 4474.732579] Code: 0f 84 d9 00 00 00 49 89 c4 48 8b 45 80 48 89 85 78 ff ff ff 90 49 8b 44 24 20 48 85 c0 74 22 48 8b 95 78 ff ff ff 48 8b 52 18 <48> 39 50 30 7e 11 48 8b bd 70 ff ff ff 49 8d 74 24 20 e8 64 31 ff
Mehr lässt sich im syslog nicht erkennen. Das weitere Vorgehen zum Debuggen (Coredump, Backtrace) ist nicht unbedingt trivial, außerdem scheint Debian kein vdr-dbg-Paket zur Verfügung zu stellen.

Vielleicht fällt mir aber noch was einfacheres ein, womit wir dem Problem auf die Spur kommen können.

Wie versprochen auch zwei Screenshots von einem provozierten Timerkonflikt, wie er in live angezeigt wird. Oben siehst du den grünen Balken und in der unteren Hälfte, was sich nach Klick auf 'Reagieren' zeigt. Mit Klick auf die blau hinterlegten Lupen hinter den Sendungen, kann man sich dann etwaige Wiederholungen für Ausweichtimer anzeigen lassen.

3050

btw: Das mit dem Vertrauen und der Kontrolle war nicht gegen dich gerichtet. Ich hätte bei mir auch im syslog kontrolliert, ob der Parameter zur Anwendung kommt.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 29.01.2021 07:44:09

dillo hat geschrieben: ↑ zum Beitrag ↑
28.01.2021 20:34:46
Vielleicht fällt mir aber noch was einfacheres ein, womit wir dem Problem auf die Spur kommen können.
Mach mal bitte Folgendes:

Lösche in /etc/vdr/conf.d/ die Links

50-epgsearch.conf
50-epgsearchonly.conf
50-quickepgsearch.conf

und vdr neu starten. Es wird jetzt nur noch conflictcheckonly geladen. Dann setzt du erst mal nur zwei Testtimer zur gleichen Uhrzeit auf ARD-HD und ZDF-HD.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 29.01.2021 09:33:01

Auftrag wie befohlen ausgeführt!
So, das hat schon mal funktioniert. Beide Timer wurden akzeptiert.

Hier noch einige Informationen zum aktuellen Stand der Dinge:
nano /etc/default/vdr:

Code: Alles auswählen

# Change to 1 to enable vdr's init-script
ENABLED=1

# Change this to 1 if you want vdr to be able to shutdown the
# computer
ENABLE_SHUTDOWN=1

VIDEO_DIR="/var/lib/video.00"

# Options that will be passed to vdr's commandline
# for example: OPTIONS="-w 15"
#OPTIONS="-w 60 -l 3.6 --device=0"
OPTIONS="-w 60 -l 3.6"

VDR_LANG="de_DE.UTF-8"
ls /etc/vdr/conf.d/

Code: Alles auswählen

00-vdr.conf  50-conflictcheckonly.conf	50-live.conf  50-xineliboutput.conf
nano /etc/vdr/conf.d/00-vdr.conf:

Code: Alles auswählen

[vdr]
--video=/var/lib/video
--config=/var/lib/vdr
--lib=/usr/lib/vdr/plugins
--record=/usr/lib/vdr/vdr-recordingaction
--epgfile=/var/cache/vdr/epg.data
--user=vdr
--grab=/tmp
--port=6419
--watchdog=60
--lirc
--vfat
--shutdown=/usr/lib/vdr/vdr-shutdown.wrapper
--device=0
#--userdump
die links habe ich nicht gelöscht, sondern in eine Verzeichnis unter/root verschoben.
/etc/default/vdr habe ich nach den Verwirrungen bezüglich /etc/default/vdr vs. /etc/vdr/conf.d/00-vdr.conf wieder in den alten Zustand versetzt. Der oben gezeigte Zustand oben /etc/default/vdr ist aktuell.
Bevor ich deinen letzten Vorschlag umsetzte, und nachdem ich --device=0 in 00-vdr.conf eingetragen hatte,waren gestern abend nicht mal mehr zwei Timer möglich: (BR+3sat)

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 29.01.2021 11:26:50

Ja und... die beiden Timer sollten doch jetzt einen Konflikt auslösen, wird der nicht angezeigt?

fischic hat geschrieben: ↑ zum Beitrag ↑
29.01.2021 09:33:01
die links habe ich nicht gelöscht, sondern in eine Verzeichnis unter/root verschoben.
Du kannst schon davon ausgehen, dass, wenn ich dir eine Empfehlung gebe und nicht explizit darauf hinweise, an deren Richtigkeit zu zweifeln oder unsicher zu sein, ich weiß, was ich tue ;)

Links in /etc/vdr/conf.d/00-vdr.conf, die auf entsprechende Dateien in /etc/vdr/conf.avail/ verweisen, zu löschen, ist die gängige Praxis, um das Starten von Plugins, die installiert sind, zu verhindern. Siehe auch /usr/share/doc/vdr/README.Debian.gz:
Automatic Loading of Plugins
----------------------------

When starting the vdr daemon, it will search in /etc/vdr/conf.d for plugin config
files, optionally containing command line parameters passed to these plugins, and
load these plugins.

Usually the files in /etc/vdr/conf.d/ will be symlinks to the real config files
in /etc/vdr/conf.avail/. By deleting or renaming these symlinks, a plugin can be
disabled or the plugin load order can be changed.
In der /usr/share/doc/vdr/README.Debian steht übrigens auch drin, welche Optionen in die /etc/default/vdr gehören. Deine Einträge stammen sehr wahrscheinlich noch von einer älteren vdr-Version, da war das noch anders.

Bei dir steht z.B.
# Change to 1 to enable vdr's init-script
ENABLED=1
drin, vdr wird jetzt aber über systemd gestartet...Bei einer frischen Installation ist die Datei bis auf einen Kommentar jedenfalls leer.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 29.01.2021 11:56:18

die beiden Timer sollten doch jetzt einen Konflikt auslösen, wird der nicht angezeigt?
Nein, vdr-live zeigt weder grünen Balken noch eine Lupe. OSD-Menü meldet bei Auswahl Timer-Konflikte: epgsearch existiert nicht.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 29.01.2021 17:47:24

Tja, ich hatte alles Mögliche in Betracht gezogen, aber dass in Buster das vdr-epgsearch-plugin-Paket nicht gefixt wird, von dem man seit Dez. 2018 weiß, dass es damit Probleme bei der Timerkonfliktprüfung gibt, hatte ich vollkommen ausgeschlossen...

https://bugs.debian.org/cgi-bin/bugrepo ... bug=916654

Bei dir ist doch die Version vdr-plugin-epgsearch 2.2.0+git20170817-2 installiert, oder?

Hätte ich mal besser gleich nach Bug Reports geschaut...

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 29.01.2021 20:46:51

So sieht's aus, s.o.! Mal schauen, was in testing ist. Selbst Kompilieren traue ich mir nicht zu. Hast du noch andere Ideen?

In bullseye gäb's 2.4.0+git20191101-1 Wenn ich die bug-Seite richtig lese, ist da der Fehler behoben. Mal schauen, was die Abhängigkeiten sagen.

Ist wohl zu riskant: Konflikte u.a. mit libc6-dev
Zuletzt geändert von fischig am 29.01.2021 21:02:50, insgesamt 1-mal geändert.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 29.01.2021 21:02:41

Ja, in Bullseye ist ein gefixtes Paket. Wenn dir das aber zu heikel ist und du einem Paket von mir für Buster trauen würdest, könnte ich nächste Woche eins bauen. Da auf meinen Rechnern ausschleißlich Sid läuft, muss ich das auf dem Laptop meiner Frau machen und da komme ich vorerst nicht ran...

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 29.01.2021 21:04:28

Wenn dir das aber zu heikel ist und du einem Paket von mir für Buster trauen würdest, könnte ich nächste Woche eins bauen.
Aber ja doch! Ich stünde tief in deiner Schuld. :oops:

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: vdr, timer-Steuerung

Beitrag von Tintom » 30.01.2021 08:58:00

Geht es um diesen Patch?

Wenn ja, lässt sich das Paket schnell selbst bauen. Ich habe das mal hier lokal durchgespielt, damit @fischic das ggf. nachvollziehen kann:

Code: Alles auswählen

cd /tmp
apt-get source vdr-plugin-epgsearch
apt-get build-dep vdr-plugin-epgsearch
cd vdr-plugin-epgsearch-2.2.0+git20170817
cat <<EOF > ./debian/patches/conflictcheck.patch
--- vdr-plugin-epgsearch-2.2.0+git20170817.orig/conflictcheck.c
+++ vdr-plugin-epgsearch-2.2.0+git20170817/conflictcheck.c
@@ -640,8 +640,8 @@ int cConflictCheck::ProcessCheckTime(cCo
     {
 	if ((*it) && (*it)->stop > checkTime->evaltime)
 	    checkTime->startingTimers.insert(*it);
-	pendingTimers.erase(*it);
     }
+pendingTimers.clear();
 
     LogFile.Log(3,"attach starting timers");
     // handle starting timers
@@ -660,9 +660,9 @@ int cConflictCheck::ProcessCheckTime(cCo
 		{
 		    LogFile.Log(3,"stopping timer '%s' (%s, channel %s) at %s on device %d because of higher priority", (*it2)->timer->File(), DAYDATETIME((*it2)->start), CHANNELNAME((*it2)->timer->Channel()), DAYDATETIME(checkTime->evaltime), device+1);
 		    AddConflict((*it2), checkTime, pendingTimers);
-		    devices[device].recTimers.erase(*it2);
 		    Conflicts++;
 		}
+devices[device].recTimers.clear();
 	    }
 	    devices[device].recTimers.insert(*it);
 	    (*it)->device = device;
EOF

echo conflictcheck.patch >> ./debian/patches/series
dpkg-buildpackage -us -uc
Das fertige Paket sollte dann unter /tmp liegen.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 30.01.2021 11:30:54

Ich warte erst mal, was dillo dazu sagt, um rauszufinden, ob das die/eine Lösung sein kann.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 30.01.2021 15:29:56

Ja, das ist der Patch, der das Problem mit den Timerkonflikten bei dieser Version behebt. Wenn du mit dem Bauen nicht zurecht kommst, kann ich das morgen Nachmittag machen. Oder Tintom hilft dir zwischenzeitlich weiter. Ich bin erst mal anderweitig beschäftigt.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 30.01.2021 15:58:27

Also gut, dann will ich mal:
Die ersten vier Zeilen meine ich zu verstehen, danach wird es für mich abenteuerlich. Ich müsste das ganze in ein srcipt packen und dieses dann als root in /tmp ausführen? Könnte das so gelingen?

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: vdr, timer-Steuerung

Beitrag von Tintom » 30.01.2021 18:01:14

fischic hat geschrieben: ↑ zum Beitrag ↑
30.01.2021 15:58:27
Ich müsste das ganze in ein srcipt packen [...]
So ist es auch gedacht.
fischic hat geschrieben: ↑ zum Beitrag ↑
30.01.2021 15:58:27
und dieses dann als root in /tmp ausführen? Könnte das so gelingen?
Als normaler User reicht auch. Solltest du nicht zurecht kommen gib' bescheid, das fertig gebaute Paket liegt hier noch rum :mrgreen:

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 31.01.2021 08:37:24

So, auf Anhieb fnktioniert der Paketbau nicht.
Als erstes musste ich deb-src in die /etc/apt/sources.list eintragen, aber das ließ sich ja bereits aus den Anfangszeilen des scriptes vermuten.
Dann kam dieser Fehler:

Code: Alles auswählen

dpkg-checkbuilddeps: Fehler: Nicht erfüllte Bauabhängigkeiten: debhelper (>= 9) vdr-dev (>= 2.4.0)
Darauf reagiert habe ich mit installation des Paketes Debianvdr-dev (samt Abhängigkeiten) aus buster. Die Abhängigkeiten habe ich mir notiert.

Dann ist der Kompilationsvorgang hier abgebrochen:

Code: Alles auswählen

[...]
dpkg-source: Information: vdr-plugin-epgsearch wird unter Benutzung des existierenden ./vdr-plugin-epgsearch_2.2.0+git20170817.orig.tar.gz gebaut
dpkg-source: Information: Patchliste aus debian/patches/series wird verwendet
patching file conflictcheck.c
Reversed (or previously applied) patch detected!  Skipping patch.
2 out of 2 hunks ignored
dpkg-source: Information: der Patch war unscharf (nicht erlaubt) oder ist fehlerhaft
dpkg-source: Information: falls Patch »conflictcheck.patch« von Quilt korrekt angewandt wurde, verwenden Sie »quilt refresh« zum Aktualisieren
dpkg-source: Fehler: Unterprozess LC_ALL=C patch -t -F 0 -N -p1 -u -V never -E -b -B .pc/conflictcheck.patch/ --reject-file=- < vdr-plugin-epgsearch-2.2.0+git20170817.orig.p51Q2l/debian/patches/conflictcheck.patch lieferte Exitstatus 1
dpkg-buildpackage: Fehler: Unterprozess dpkg-source -b . lieferte Exitstatus 2
Und damit weiß ich nicht mehr umzugehen.

weitere Frage:
Ich habe kaum je mal etwas unter /tmp gemacht. Gehe ich recht in der Annahme, dass das System darin befindliche Dateien zu Beginn oder am Ende der Sitzung automatisch löscht?
Ich verwahre das script mal vorsichtshalber an einer anderen Stelle.

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 31.01.2021 14:46:38

fischic hat geschrieben: ↑ zum Beitrag ↑
31.01.2021 08:37:24
Ich habe kaum je mal etwas unter /tmp gemacht. Gehe ich recht in der Annahme, dass das System darin befindliche Dateien zu Beginn oder am Ende der Sitzung automatisch löscht?
Ja.
fischic hat geschrieben: ↑ zum Beitrag ↑
31.01.2021 08:37:24

Code: Alles auswählen

[...]
patching file conflictcheck.c
Reversed (or previously applied) patch detected!  Skipping patch.
Ich nehme an, du hast das Script wiederholt laufen lassen, ab dem zweiten Mal war der Patch dann schon angewendet.

Lösche alles in /tmp was zu epgsearch gehört und lass das Script nochmals mit frischen Sourcen laufen, dann sollte es gehen.

Als Notanker bei weiteren Problemen, lade das Paket, das ich gerade aus etwas aktuelleren Sourcen habe bauen lassen und getestet habe mit

Code: Alles auswählen

wget http://anthra.de/public/vdr-plugin-epgsearch_2.4.0+git20191101-1_amd64.deb
herunter und installiere es als root in dem Verzeichnis, in dem es liegt, mit

Code: Alles auswählen

dpkg -i vdr-plugin-epgsearch_2.4.0+git20191101-1_amd64.deb
Mein Test mit jeweils mehreren Timern zu drei unterschiedlichen Zeitpunkten:
3067

Etwaige Fragen zur Konfiguration von epgsearch und Vorgehensweise bei Timerkonflikten können wir ja behandeln, wenn du es dir etwas näher angeschaut hast.

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 31.01.2021 16:21:35

Danke einstweilen sehr, dillo. Ich hatte zwei Versuche gemacht, jweils bis zur geposteten Fehlermeldung. Ich gehe es heute abend wieder an. Vorab noch eine Frage: In /tmp/ gibt's nichts mehr, was ich mit vdr in Verbindung brächte (diverse System-Neustarts). Da ich die nötigen Pakete alle via Debian-Paketverwaltung installiert habe, sollten die auch nach wie vor alle vorhanden sein - richtig? D.h., ich brauche nur das script in ein beliebiges (am besten leeres) Verzeichnis zu packen und es dann wieder starten. (Verfahren bei der Installation eines fertigen Paketes via dpkg ist mir bekannt.)

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 31.01.2021 18:30:35

fischic hat geschrieben: ↑ zum Beitrag ↑
31.01.2021 16:21:35
Da ich die nötigen Pakete alle via Debian-Paketverwaltung installiert habe, sollten die auch nach wie vor alle vorhanden sein - richtig?
Ja, die nötige Build-Umgebung, bis auf das Sourcenpaket, ist vorhanden, du könnstest also im Prinzip

Code: Alles auswählen

apt-get build-dep vdr-plugin-epgsearch
im Script auskommentieren, aber wenns drinbleibt, witft das keinen Fehler, apt meldet nur, dass schon alles installiert ist und weiter gehts.
fischic hat geschrieben: ↑ zum Beitrag ↑
31.01.2021 16:21:35
D.h., ich brauche nur das script in ein beliebiges (am besten leeres) Verzeichnis zu packen und es dann wieder starten.
Wo du das Script abspeicherst, ist schnuppe. Und wenn du nicht in /tmp bauen lassen willst, nimmst du ein anderes Verzeichnis deiner Wahl und gibst den Pfad in der ersten Zeile des Scripts an.

Finde ich gut, dass du es nochmal probieren willst :THX:

fischig
Beiträge: 3600
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: vdr, timer-Steuerung

Beitrag von fischig » 01.02.2021 07:56:55

So, ihr beiden, das war's. Paketbau lief ohne Fehlermeldung durch, Paket installiert, Timer-Konfliktprüfung funktioniert laut erstem Test wie beschrieben! :THX: :THX: :THX: :wink:
Finde ich gut, dass du es nochmal probieren willst :THX:
So schnell geb' ich nicht auf, wenn mir Fehlerursachen gezeigt werden und ich mir deren Behebung zutraue. :mrgreen:

Fragen am Rande: Woher stammt das script und wieso ist das gepatchte Paket nicht in security/backports?

dillo
Beiträge: 359
Registriert: 28.05.2005 19:53:56

Re: vdr, timer-Steuerung

Beitrag von dillo » 01.02.2021 14:00:52

fischic hat geschrieben: ↑ zum Beitrag ↑
01.02.2021 07:56:55
Fragen am Rande: Woher stammt das script
Tintom hat einfach nur die nötigen Befehle zum Bau des gepatchten Pakets aufgelistet. In der Form war es dann auch als Script verwendbar.
fischic hat geschrieben: ↑ zum Beitrag ↑
01.02.2021 07:56:55
und wieso ist das gepatchte Paket nicht in security/backports?
Der Patch war wegen einer Änderung in der glibc nötig, und hat keine Sicherheitsrelevanz. Ohne gibt es ja 'nur' einen Speicherzugriffsfehler bei der Timerkonfliktprüfung. Warum Tobi, der Maintainer der VDR-Pakete kein aktualisiertes Paket für epgsearch in den backports zur Verfügung stellt, müsstest du ihn fragen.

Antworten