betonme / e2openplugin-EnhancedMovieCenter

EMC is an enhanced movielist replacement for Linux based receivers.
36 stars 61 forks source link

Crash beim Löschen einer aktuellen Wiedergabe #226

Open koivo opened 6 years ago

koivo commented 6 years ago

Hi,

ja ich weiß das macht man nicht, aber scheinbar wissen das nicht alle. Wird eine Aufnahme abgespielt und während der Wiedergabe gelöscht, dann crasht die Box. Kann man das irgendwie abfangen?

Swiss-MAD commented 6 years ago

Natürlich darf man das machen. EMC beendet sogar erst den Timer, danach kann man löschen.

Neu seit https://github.com/betonme/e2openplugin-EnhancedMovieCenter/commit/e2abdad09fc0e1aa2f2403d46e2fb5f570ad4da7 geht das auch bei wiederholenden Timern, und es kommt sogleich nach der Frage ob der Timer beendet werden soll, auch die Frage ob gleich auch gelöscht werden soll. ;)

Funktioniert hier auf OE2.5 und OE2.0

//EDIT Eben gesehen das ich nicht genau gelesen habe, das du ja während dem Abspielen löschst. Sollte ja auch gehen, wie Sven schon ausprobiert hat. ;) Ansonsten geht nix ohne Crashlog

svenh0 commented 6 years ago

ist ja die Frage, ob er eine laufende oder fertige Aufnahme abspielt.

Hab bei mir gerade beide Fälle durchgespielt. Zum Löschen während der Wiedergabe einfach nochmal während der Wiedergabe die PVR-Taste. Dann öffnet sich wieder EMC trotz weiterlaufender Wiedergabe. Dort dann den Film löschen, der gerade wiedergegeben wird.

Da kommt bei mir sogar die Frage, ob die laufende Wiedergabe wirklich gelöscht werden soll. Einen Crash habe ich nicht hinbekommen.

koivo commented 6 years ago

Es handelt sich um eine fertige Aufnahme. Ein laufende Aufnahme abbrechen und löschen funktioniert. Crashlog ist auch kein Problem. Papierkorb ist aktiviert und Caching ist deaktiviert. Also während der Wiedergabe in die Filmliste gehen und dort den Film löschen welcher grade abgespielt wird. enigma2_crash_1516594167.log

dhwz commented 6 years ago

Ich bin mir eigentlich ziemlich sicher, dass ich diese Funktion auch nach der letzten Änderung erst getestet hab weil ich die Abfrage dazu im Code gesehen hatte und das funktionierte ohne Crash. Ich seh in dem Log auch keinen Crash, ist das Log unvollständig?

Swiss-MAD commented 6 years ago

Ist auf dem Image vielleicht eine zu alte python version drauf? unbindAction unbindAction with illegal python reference

koivo commented 6 years ago

Dann sollte es in allen OA Images falsch sein. Das HDF wird ja auch aus dem OE-Core gebaut. Ich kann es gerne auch mal mit einem Image aus dem OE-Core 4.2 testen. Das Log ist an der Stelle zu Ende. Es gibt einen harten Crash und Enigma startet sofort neu.

svenh0 commented 6 years ago

@koivo

Schreibe doch bitte mal deine Schritte hier genau auf. Ich habe ja oben meinen Testweg halbwegs beschrieben und schaffe es nicht, die Box dabei zu crashen.

Welche Version vom EMC verwendest du? Die letzte Version hier aus dem git?

dhwz commented 6 years ago

Also wenn dass das komplette Log ist kommt der Crash ja schonmal nicht aus dem Pythoncode sonst würde da etwas stehen. Und dort wo es "crasht" wurde die Wiedergabe ja auch schon längst angehalten und das File gelöscht...

koivo commented 6 years ago

Also mein genauer Weg ist folgender:

  1. Aufnahme starten und 2 min laufen laufen.
  2. Aufnahme stoppen und EMC öffnen.
  3. Diese Aufnahme im EMC abspielen.
  4. Steuerkreuz hoch oder runter um in die Fileliste im EMC zu kommen.
  5. Mit rot die aktuell laufende Wiedergabe löschen (ohne die Wiedergabe vorher zu stoppen).

Das File ist trotz Crash danach auch gelöscht und im Papierkorb. EMC ist sehr aktuell hier aus dem git. Es fehlen vielleicht die letzten 3 Commits. Einfachste Lösung ist wahrscheinlich die Rückkehr zur Fileliste per keymap zu verhindern. Also die Stopp Taste zur Pflicht zu machen. Ich teste es aber gern auch noch einem anderen Image und/oder Version. ATV zum Beispiel. Dank Multiboot ist das ja kein Problem. Ich werde das auch mal mit dem integrierten einfachen Movieplayer probieren.

dhwz commented 6 years ago

Ok, mit Movieplayer testen wird vermutlich wenig bringen selbst wenn es dort gehen sollte. Aber ohne aussagekräftiges Crashlog kommen wir hier vermutlich auch nicht weiter :(

koivo commented 6 years ago

Ich kann das Ganze auch mal im Telnet laufen lassen und mitschneiden. Aber da wird vermutlich auch nicht mehr zu sehen sein.

svenh0 commented 6 years ago

unbindAction unbindAction with illegal python reference

kann es sein, dass "unbindAction" im aktuellen Quellcode von EMC gar nicht mehr vorkommt? Mein Dateimanager findet den Text gar nicht. Von daher scheint doch irgendwas nicht ganz zusammenzupassen.

@koivo Auch mit deinem Ablauf bekomme ich keinen Crash. Am besten wohl erstmal die aktuelle Version aus dem git installieren.

Swiss-MAD commented 6 years ago

unbind haben wir doch erst Grad im Setup raus genommen. https://github.com/betonme/e2openplugin-EnhancedMovieCenter/commit/1172f3dae38639e3554551ecf36aaca5ab20c94d Das sollte aber eigentlich nur das Setup betreffen.

svenh0 commented 6 years ago

und wieso kommt das bei ihm noch als Fehler ?

Swiss-MAD commented 6 years ago

Seine Version ist von vor ein paar tagen. Mal mit aktuellem Stand testen. Wobei das bind unbind da ist schon sehr lange im EMC. Ich mag mich noch erinnern als wir diese Funktion mit den beiden Farbtasten zur Bestätigung diskutiert hatten. ;)

svenh0 commented 6 years ago

Wobei das bind unbind da ist schon sehr lange im EMC.

Dass das unbind unter bestimmten Umständen zu Problemen führt, hast du ja selbst gespürt #224 ;) Ich wollte damit ja auch nur sagen, dass er nicht die aktuellste Version zu haben scheint. Und bevor er hier andere Images durchtestet, er doch vorher einfach mal die aktuelle Version testen sollte ;)

Zumal das unbind ja nur für die Setup-Option verwendet wurde. Da ist mir rätselhaft, was das mit dem Löschen von Dateien zu tun haben soll ?!?

dhwz commented 6 years ago

Jungs das eine hat mit dem anderen überhaupt nix zu tun ;) Ich hab doch schon gesagt Logfile ist unvollständig. Das ist kein Pythonfehler.

koivo commented 6 years ago

Also mit der aktuellen Version getestet hab ich jetzt. Crash kommt immer noch. In der Movieselection funktioniert das Löschen problemlos. Ein vollständigeres Log kann ich nicht liefern. Die Ausgabe im Telnet sieht so aus:

18:19:06.9718 Plugins/Extensions/EnhancedMovieCenter/EMCFileCache.py:214 delPathFromCache  EMC delPathFromCache /media/hdd/movie/trashcan
18:19:06.9725 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:2730 execFileOp  EMC ret exeFil 4097:0:0:0:0:0:0:0:0:0:/media/hdd/movie/Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mkv:Dolby_Conductor_Lossless_ATMOS-thedigitaltheater
18:19:06.9726 Plugins/Extensions/EnhancedMovieCenter/EMCFileCache.py:214 delPathFromCache  EMC delPathFromCache /media/hdd/movie/trashcan
18:19:06.9735 Plugins/Extensions/EnhancedMovieCenter/EMCFileCache.py:214 delPathFromCache  EMC delPathFromCache /media/hdd/movie
18:19:06.9772 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:06.9809 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1706 setReturnCursor  EMC ret setCur 4097:0:0:0:0:0:0:0:0:0:/media/hdd/movie/Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mkv:Dolby_Conductor_Lossless_ATMOS-thedigitaltheater
18:19:06.9811 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:06.9842 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] Run script
18:19:06.9850 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] executing: 'touch "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.eit"; mv "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.eit" "/media/hdd/movie/trashcan/"; touch "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.ts"; touch "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.ts."*; mv "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.ts" "/media/hdd/movie/trashcan/"; mv "/media/hdd/movie/20180122 1817 - ZDF HD - SOKO München.ts."* "/media/hdd/movie/trashcan/"'
18:19:06.9915 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:06.9958 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1706 setReturnCursor  EMC ret setCur 4097:0:0:0:0:0:0:0:0:0:/media/hdd/movie/Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mkv:Dolby_Conductor_Lossless_ATMOS-thedigitaltheater
18:19:06.9961 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:07.0000 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:07.0035 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
18:19:07.0103 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [EMCMS] deleteMovie
18:19:07.0172 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:761 cancelThreadMsg  [EMCMovieSelection] cancelThreadMsg
18:19:07.0264 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
FATAL: 18:19:07.0344 actions/action.cpp:91 unbindAction [eActionMap] unbindAction with illegal python reference
18:19:11.0332 gdi/grc.cpp:193 thread main thread is non-idle! display spinner!
Killed
root@mutant51:~#
dhwz commented 6 years ago

Hm also das Problem scheint nicht zu existieren auch im OpenATV gibt es keinen Crash.

koivo commented 6 years ago

Ja das stimmt. Muss ich mal schauen wie das dort abgefangen ist. Aber unbedingt gesund sieht das im Telnet auch nicht aus:

05:31:26.1005 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
05:31:26.1033 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
05:31:26.1129 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] sh exec 'touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit" "/media/hdd/movie/trashcan/"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."*; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts" "/media/hdd/movie/trashcan/"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."* "/media/hdd/movie/trashcan/"' finished, return status = 0
05:31:26.1134 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] sh exec rebound
05:31:26.1136 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:46 emcDebugOut  Unexpected error: <type 'exceptions.KeyError'>
05:31:26.1136  Traceback (most recent call last):
05:31:26.1137    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py", line 130, in runFinished
05:31:26.1140    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 2711, in delCB
05:31:26.1142  KeyError: 'list'
05:31:26.1143 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] sh exec 'touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit" "/media/hdd/movie/trashcan/"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."*; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts" "/media/hdd/movie/trashcan/"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."* "/media/hdd/movie/trashcan/"' finished, return status = None
05:31:26.1145 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:46 emcDebugOut  Unexpected error: <type 'exceptions.KeyError'>
05:31:26.1146  Traceback (most recent call last):
05:31:26.1146    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py", line 130, in runFinished
05:31:26.1148    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 2711, in delCB
05:31:26.1149  KeyError: 'list'
05:31:26.1152 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:1420 resetInfo  EMC: resetInfo
05:31:26.1157 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] sh exec rebound
05:31:26.1159 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:46 emcDebugOut  Unexpected error: <type 'exceptions.AttributeError'>
05:31:26.1160  Traceback (most recent call last):
05:31:26.1161    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py", line 130, in runFinished
05:31:26.1163    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1701, in initCursor
05:31:26.1165    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1384, in updateInfo
05:31:26.1166    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1421, in resetInfo
05:31:26.1168  AttributeError: 'EMCSelection' object has no attribute 'delayTimer'
05:31:26.1171 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut  EMC: [emcTasker] sh exec 'touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.eit" "/media/hdd/movie/trashcan/"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts"; touch "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."*; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts" "/media/hdd/movie/trashcan/"; mv "/media/hdd/movie/20180123 0530 - Das Erste HD - ARD-Morgenmagazin.ts."* "/media/hdd/movie/trashcan/"' finished, return status = None
05:31:26.1174 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:46 emcDebugOut  Unexpected error: <type 'exceptions.AttributeError'>
05:31:26.1177  Traceback (most recent call last):
05:31:26.1179    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py", line 130, in runFinished
05:31:26.1182    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1701, in initCursor
05:31:26.1186    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1384, in updateInfo
05:31:26.1188    File "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py", line 1421, in resetInfo
05:31:26.1190  AttributeError: 'EMCSelection' object has no attribute 'delayTimer'
05:31:26.1196 Plugins/Extensions/EnhancedMovieCenter/EMCFileCache.py:65 delcacheCountSizeList  EMC delete cacheCountSizeList {}
05:31:26.1200 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:2990 postFileOp  ('[EMC] postFileOp exception: ', "'list'")