Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Database Update failed on Kodi 18 @ FireTV 4K et al #103

Closed
nilz90 opened this issue Dec 5, 2018 · 55 comments
Closed

Database Update failed on Kodi 18 @ FireTV 4K et al #103

nilz90 opened this issue Dec 5, 2018 · 55 comments
Assignees
Labels
bug Something isn't working done The issue was soled or implemented
Milestone

Comments

@nilz90
Copy link

nilz90 commented Dec 5, 2018

Kodi 18 seems to have a problem with decompression of the database file.

21:07:50.305 T:18446744072753924384  NOTICE: [plugin.video.mediathekview-0.5.0:Updater]: Trying to decompress gz file...
21:08:18.156 T:18446744072753924384   ERROR: [plugin.video.mediathekview-0.5.0:Updater]: gz decompression failed: [Errno 22] Invalid argument
21:08:18.156 T:18446744072753924384  NOTICE: [plugin.video.mediathekview-0.5.0:Updater]: Return -1
@Krawei
Copy link

Krawei commented Dec 13, 2018

I have the same issue, see:

xbmc/xbmc#15039

The Kodi devs told me, that it is not a Kodi problem itself and asked me to report it to the addon-team.

So here it is. Feel free to take a look on the detailed bug report mentioned above.

@fzinken
Copy link

fzinken commented Dec 15, 2018

Seems to be fixed in latest Kodi version

@Krawei
Copy link

Krawei commented Dec 15, 2018

@fzinken Which Kodi version do you mean? In the latest nightly build ( http://mirrors.kodi.tv/nightlies/android/arm/master/kodi-20181214-4c17e776-master-armeabi-v7a.apk ) the update still doesn't work.

@fzinken
Copy link

fzinken commented Dec 15, 2018

Worked for me with the OSMC version that is based on this commit xbmc (57abba2fd)
https://discourse.osmc.tv/t/testing-kodi-18-leia-builds-for-vero-2-4k/23059/838

@Krawei
Copy link

Krawei commented Dec 15, 2018

Bug still occurs. Debug log here: https://paste.kodi.tv/vuwogelajo

@MarcusRoeckrath
Copy link

MarcusRoeckrath commented Dec 15, 2018

On libreelec 8.90.0009 I do not see a general decompressing problem because manual database updates works as expected while automatic and update on startup does not; see:

Correction: Reference should have pointed to another issues not this one:
#102

@fzinken
Copy link

fzinken commented Dec 15, 2018

Ok, so that seems to be the explanation. I was trying manual database updates and they worked fine

@MarcusRoeckrath
Copy link

Made wrong URL reference, which should be:
#102

There I described the problem that manual and "update on startup" does not work on my wetek play 2 using libreelec 8.90 while this was working in libreelec 8.2.5.

@Krawei
Copy link

Krawei commented Dec 17, 2018

Any updates here? The problem occurs during any kind of update (manual and automatic).

Is the problem known?

@MarcusRoeckrath
Copy link

MarcusRoeckrath commented Dec 19, 2018

I would be nice if a developer will take place in recent bug discussions.

It seams that in issue #95 the newest reaction from the developer can be read assuming that tuxpoldo is the nickname from a developer.

@fzinken
Copy link

fzinken commented Dec 20, 2018

"if a developer" well unless you will step up and help developing than I think we only have @tuxpoldo as the only developer. And as you have seen he hasn't been around for a while which would indicate that @tuxpoldo surely has other topics in his live that currently might be more important.
So I don't think asking for "developer will take place in recent bug discussions" doesn't help anything as people will show up when they have time for a project. If they don't show up the only option you have to either patently wait or step up the game and start programming.

@tuxpoldo tuxpoldo self-assigned this Feb 17, 2019
@tuxpoldo tuxpoldo added the bug Something isn't working label Feb 17, 2019
@tuxpoldo
Copy link
Member

I'm back here (sorry for the delays - you are right - unfortunately there was really something more important ;-) ). I'm currently working on the whole update routine since we are planning to provide a fast update mechanism based on the distribution of shrink-wrapped-sqlite databases (no more need to full import a database).

@fzinken
Copy link

fzinken commented Feb 17, 2019

Welcome back. For me currently on Kodi 18 the database update is working.

@tuxpoldo tuxpoldo added this to the release-0.6.0 milestone Feb 17, 2019
@Krawei
Copy link

Krawei commented Feb 26, 2019

Well my database update still fails on the amazon fire tv 4k stick.

Is there a time frame where we can expect the new version? Or is there a beta version available for pre-release testers (like me ;) )?

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 1, 2019

@Krawei : Heute oder morgen kommt ein Update aus dem Beta-Repository. In diesem Update habe ich die GZ-Routine mal komplett zerlegt und mit ganz viel Debugs ausgestattet. Wir kriegen dann mal raus, wo es knallt.

@tuxpoldo tuxpoldo added the in progress Somebody is working on this issue label Mar 1, 2019
@tuxpoldo tuxpoldo modified the milestones: release-0.6.0, release-0.7.0 Mar 1, 2019
@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 5, 2019

Hallo zusammen,

die Version 0.6.0 aus dem Beta-Repository enthält beim Entpacken von GZ Dateien nun zusätzliche Debug-Meldungen. Sollte dieses Problem noch aktuell sein, so bitte ich um Zusendung der Log-Dateien.

Vielen Dank!

@Krawei
Copy link

Krawei commented Mar 5, 2019

@tuxpoldo Welcome back - willkommen zurück :) !

Das Problem besteht leider immer noch, auch mit der Entwicklerversion / Unfortunately the problem still exists, even with the developer version:

https://privatebin.net/?988fb3b76fe49c1e#TRXTidcaI+NeE0SDS5McPeTKVNMph5QNtsTWD8o/E58=

System:

  • Amazon Fire TV Stick 4k
  • Kodi 18.2-RC1 Git:20190304-1a261cfe5c

@nilz90
Copy link
Author

nilz90 commented Mar 5, 2019

@tuxpoldo habe mit der aktuellen Beta aus dem neuen Repo keine Probleme mehr. Vielen dank für die schnellere update Routine
CoreElec Nightly (18.1)

Sobald sich diesbezüglich was ändern sollte, melde ich mich wieder

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 8, 2019

@Krawei : So - habe erst mal die wichtigen Zeilen herausisoliert:

2019-03-05 20:11:58.899 T:8478  NOTICE: [plugin.video.mediathekview-0.6.0:Updater]: Trying to decompress gz file...
2019-03-05 20:12:19.810 T:8478   ERROR: [plugin.video.mediathekview-0.6.0:Updater]: gz decompression of "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/addon_data/plugin.video.mediathekview/filmliste-v2.db.update.gz" to "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/addon_data/plugin.video.mediathekview/filmliste-v2.db.update" failed on reading gz file: [Errno 22] Invalid argument
2019-03-05 20:12:19.811 T:8478  NOTICE: [plugin.video.mediathekview-0.6.0:Updater]: Return -1
2019-03-05 20:12:19.812 T:8478  NOTICE: [plugin.video.mediathekview-0.6.0:Updater]: Cleaning up downloads...

Hiermit ist klar, dass die Exception auf Zeile 622 von updater.py (Lesen und dekodieren des GZ-Datenstroms) passiert. Ich habe bis jetzt noch nicht bewusst mitbekommen, dass überhaupt jemand die gz-Version der Update-Datei bezieht, da im Regelfall alle Systeme IMMER auch die bz2 Library unterstützt haben. Dies scheint bei @Krawei mit seinem Nightly-RC-Release aber nicht der Fall zu sein.

An diesem Punkt werde ich dann erst mal folgendes ausprobieren:

  1. Ich werde mein Plugin so amputieren, dass es von den MediathekView Servern die gz-Version des Updates holt. Sollte es dann bei mir auch krachen, ist davon auszugehen, dass irgendein Mist bei der Generierung der GZ-Datei auf den MediathekView Update-Servern passiert. Das versuche ich dann mit @alex1702 zu klären. Sollte es aber hier nicht krachen, ist davon auszugehen, dass die gz-Library in @Krawei s nightly-RC-Image irgendein Hau hat.
  2. @nilz90 : könntest Du mal bitte einen vergleichbares Logfile von Deinem FireTV Stick 4k ziehen. Ich würde mal gerne verstehen, ob dort auch die GZ-Version der Update Datei oder die BZ2-Version verarbeitet wird. Das Logfile muss nicht so detailliert sein - INFO Level reicht vollkommen aus da das Plugin alle relevanten Meldungen als INFO ausgibt.

Was mir am wichtigsten ist, ist zu verstehen, ob das Problem nur auf dem Fire TV 4k auftaucht, und falls ja, welche genaue Software-Version das ist. Insbesondere würde ich gerne wissen, ob es Fire TV 4k User gibt die das Problem nicht haben.

@nilz90
Copy link
Author

nilz90 commented Mar 8, 2019

hab gerade nochmal 18.1 frisch auf dem ftv4k aufgesetzt. Hier wird in der tat die das gz Archiv gezogen.
Da ich die release notes jetzt nicht gelesen habe ein log mit 0.6.0 und eins mit 0.6.1

Kodi:
Build: Kodi 18.1 Git:20190217-8cfdc89
Compiled: 17.02.19

Fire OS
6.2.5.8 (NS6258/1607)

0.6.1
https://privatebin.net/?a2ddda01e99fe05a#4XG5I/8kWFg3+CovMA/UT2i6Y1afWYMM4r5mlsmvWAs=

0.6.0
https://privatebin.net/?d1b8700a584a0a13#el8US2fYGSeKuDyV9L93NF23r3ptsvvnh8Ff08m4ts0=

@Endur
Copy link

Endur commented Mar 9, 2019

Habe Kodi 18.2 RC Nightly Android ARMV7 von heute, 09.03.2019 sowie 0.6.1 vom Kodi Repo. Es wird filmliste-v2db.gz geladen. Folgender Fehler is relevant:

ERROR: [plugin.video.mediathekview-0.6.1:Updater]: gz decompression of "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/addon_data/plugin.video.mediathekview/filmliste-v2.db.update.gz" to "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/addon_data/plugin.video.mediathekview/filmliste-v2.db.update" failed on reading gz file: [Errno 22] Invalid argument

Siehe
kodi.log

Fehler ist konstant vorhanden, glaube ich, seit den Alphaversionen von Kodi 18. Unter 17.6 mit dem 0.5 fehlerfrei.

@Endur
Copy link

Endur commented Mar 9, 2019

Box ist ein Orbsmart H-01, mit Android 6, baugleich mit dem Eweat R9, eine relativ performanter und stabiler externer Android Mediaplayer, kein Fire TV. Exakt gleiches Verhalten auch mit dem Release 18.1.

Eventuell ein generelles Problem unter Kodi 18 auf Android. Die Entpacker unter "Virtuelle Dateisysteme" / "Archive support" sowie "RAR Archive support" sind installiert.

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Hallo @Krawei , hallo @Endur ,

ich habe soeben meinen Test gemacht, und meine Version des Plugins so beschnitten, dass er die GZ-Version der Datenbank heruntergeladen hat. Resultat: kein Fehler.

Was bedeutet das nun: leider nichts Gutes. Das bedeutet, dass die Python-gzip-Library die in der Kodi-Version für eure Android-Devices enthalten ist, irgendeine Besonderheit hat, die dazu führt, dass das Dekomprimieren schief läuft.

Was können wir jetzt tun? Ein paar Optionen haben wir noch:

  1. Um möglichst Bandbreite zu sparen, werden die zu herunter ladenden Dateien immer mit dem höchsten Kompressionsgrad komprimiert. Möglicherweise stört sich die gz-Library in euren Geräten daran. Ich stelle jetzt auf meinem Server eine Version zum Herunterladen zur Verfügung, die ganz normal komprimiert ist. Um das auszutesten, müsstet ihr mal das Plugin patchen, und zwar die Datei resources/lib/storesqlite.py. Dort findet ihr eine wegkommentierte Zeile 24 mit einer yeasoft.com-url. diese müsst ihr einfach reaktivieren, und dafür die Zeile 25 hingegen deaktivieren durch ein entsprechendes Kommentarzeichen. Solltet ihr dazu nicht in der Lage sein, so kann ich gerne ein gepatchtes Plugin zur Verfügung stellen.
  2. Man könnte mal versuchen, an dem Blocksize-Parameter der Dekumprimierung herumzuspielen. Hier wäre es z.B. sinnvoll mal die halbe größe (4096) oder die doppelte Größe auszuprobieren. DIes befindet sich in der Datei resources/lib/updater.py auf Zeile 604.

Lasst mich wissen, wie es gelaufen ist, oder sagt mir bescheid, wenn ihr gepatchte Versionen des Plugins braucht.

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Im Moment sehe ich für euch nur 2 Möglichkeiten:

  1. Downgrade auf Kodi 17
  2. MySQL Datenbank mit Manuellem Update über mvupdate Script auf dem NAS

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Ich gebe mich aber noch nicht geschlagen....

@Endur
Copy link

Endur commented Mar 9, 2019

Das Binary gz war irgendwo in Kodi 17.6. Manuelles Update auf NAS ist nur ein Workaround. Habe kein NAS ;)

@Endur
Copy link

Endur commented Mar 9, 2019

ssh geht. Nicht sicher, ob es unter Android einfach ein locate mit updatedb gibt.

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Ich versuche euch morgen mal eine Version zu bauen, die nach einem externen binary sucht. Mal sehen ob wir das so hinbekommen können.

@Krawei
Copy link

Krawei commented Mar 9, 2019

Also mit der adb habe ich dank adb shell eine Verbindung zu meinem Fire TV 4K bekommen. Anscheinend ist gzip drauf, gz aber nicht, siehe:

1|mantis:/ $ ls /system/bin/gzip
/system/bin/gzip

@Endur
Copy link

Endur commented Mar 9, 2019

Ja, gut. Die Ursache ist - grob - verursacht durch Änderungen in Kodi 18. Verdächtig ist schon, dass die Entpacker nun unter Virtuelle Dateisysteme extrahiert sind. Eventuell funktioniert da irgendwas mit den Pfaden nicht. Nur eine Vermutung.

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Machen wir mal einen Versuch es mit /system/bin/gzip auszupacken. Ich bereite euch morgen mal eine Spezialversion vor. Ach so. SChaut doch mal bitte ob es vielleich auch ein bzip2 bzw. bunzip2 gibt.

@tuxpoldo
Copy link
Member

tuxpoldo commented Mar 9, 2019

Ich mache dann auch schön viele detaillierte Logausgaben so dass wir sehen können, was passiert. Und jetzt schaue ich "True Detective" weiter....

@Krawei
Copy link

Krawei commented Mar 9, 2019

@tuxpoldo unter /system/bin ist leider kein bzip2 bzw. bunzip2, nur ein bzcat (?).

Hier mal eine Auflistung:
acpi
am
app_process
app_process32
applypatch
appops
appwidget
atrace
badblocks
base64
basename
bcc
blockdev
bmgr
bu
bugreport
bugreportz
bzcat
cal
cat
chcon
chgrp
chmod
chown
chroot
cksum
clear
cmd
cmp
comm
content
cp
cpio
cut
dalvikvm
dalvikvm32
date
dd
dex2oat
dexdump
df
dirname
dmesg
dos2unix
dpm
du
dumpsys
echo
egrep
env
expand
expr
fallocate
false
fdisk
fgrep
find
flock
free
getenforce
getevent
getprop
grep
groups
gzip
head
hid
hostname
hwclock
id
idme
ifconfig
iftop
ime
inotifyd
input
insmod
ioctl
ionice
iorenice
ip
ip6tables
ip6tables-restore
ip6tables-save
iptables
iptables-restore
iptables-save
iw
iwpriv
kill
killall
ld.mc
libtftpc
linker
ln
load_policy
log
logcat
logname
logwrapper
losetup
ls
lsmod
lsof
lsusb
make_ext4fs
make_f2fs
md5sum
media
mkdir
mke2fs
mknod
mkswap
mktemp
modinfo
monkey
more
mount
mountpoint
mv
nandread
ndc
netstat
newfs_msdos
nice
nl
nohup
oatdump
od
ozwpan.sh
paste
patch
patchoat
pgrep
pidof
ping
ping6
pkill
pm
pmap
powertop
printenv
printf
prlimit
ps
pwd
readlink
realpath
reboot
renice
requestsync
restorecon
rm
rmdir
rmmod
route
run-as
runcon
schedtest
screencap
screenrecord
secdiscard
sed
sendevent
sensorservice
seq
service
setenforce
setprop
setsid
settings
sh
sha1sum
sleep
sm
sort
split
start
stat
stop
strings
svc
swapoff
swapon
sync
sysctl
tac
tail
tar
taskset
tc
tee
telecom
time
timeout
toolbox
top
touch
toybox
tr
true
truncate
tty
uiautomator
ulimit
umount
uname
uniq
unix2dos
uptime
usleep
vmstat
wc
which
whoami
wipe_fos_flags
wm
wpa_cli
xargs
xxd
yes
Ansonsten: Danke für deine Mühen. Und entspanntes Seriengucken ;).

@Endur
Copy link

Endur commented Mar 9, 2019

/system/bin/gzip
ist da, habe mit TotalCommander nachgesehen.

@tuxpoldo tuxpoldo changed the title Database Update failed on Kodi 18 Database Update failed on Kodi 18 @ FireTV 4K et al Mar 10, 2019
@tuxpoldo
Copy link
Member

Danke für die Infos. Es ist in der Tat so, dass sowohl das Entpacken einer bz2-Datei als auch das Entpacken einer gz-Datei mit Hilfe der nativen Funktionen der Python-Library die im Kodi enthalten ist ausgeführt wird. Offensichtlich gibt es hier wohl ein Fehler in der Version für eure Platformen. Ich habe jetzt eine Spezialversion des PLugins gebaut, die im Falle eines Fehlers beim Auspacken einer gz-Datei (die ohnehin schon das letzte Fallback ist, weil die Platform nichts anderes unterstützt) jetzt noch einen allerletzten Versuch macht, die Datei mit Hilfe des Kommandozeilen-Tools (falls vorhanden!) versucht.

plugin.video.mediathekview-0.6.1.1.zip

Also: versucht es mal und schickt mir bitte mal die Logausgaben.

@tuxpoldo
Copy link
Member

@Krawei und @Endur: Das ZIP ist doch OK, oder muss ich euch die Test-Version irgendwie anders zur Verfügung stellen?

@Endur
Copy link

Endur commented Mar 10, 2019

Nein, ich teste in ca. einer Stunde...

@tuxpoldo
Copy link
Member

@Endur : Super! Ich bin jetzt echt mal gespannt!

@Endur
Copy link

Endur commented Mar 10, 2019

Es funktioniert sofort, Du hast den Fehler gefunden! Ist auch schnell im Vergleich zu 0.5.
Eventuell benutzt die in Kodi eingebettete gzip Library andere Parameter. Ziehe jetzt gleich noch das Log, transferiere es per FTP und lade es hier hoch . Danke für Deine Anstrengung. Wenigstens ohne große, weitere Frustrationen...

@Endur
Copy link

Endur commented Mar 10, 2019

Calling /system/bin/gzip -d ... Returned 0 :)

kodi.log

@Endur
Copy link

Endur commented Mar 10, 2019

Ja, als letzter Fallback mit dem gzip unter /system/bin
Ich denke, dieser Fix ist generell notwendig für Android.

@tuxpoldo
Copy link
Member

Dann mache ich jetzt kurzen Prozess: ich werde diese Version mal schnell releasen, damit all jenen die das Problem haben, geholfen wird. Der Grund warum es so viel schneller jetzt ist, ist dass wir in der 0.6.0 das sogenannte native Update für SQLite eingebaut haben. Das bedeutet: das Plugin zieht sich ein mal am Tag eine bereits fertige SQLite Datenbank von den Zentralservern runter.

Die Herrschaften von Kodi waren ein wenig vorschnell xbmc/xbmc#15039 so zu schließen. Es handelt sich hier wohl tatsächlich um einen Fehler in der GZ-Library der allerdings nur in der Version für Android bzw. FIreTV 4K auftritt. Das hier war dann wohl der finale Beweis. Ich werde versuchen in dem Ticket nochmal was reinzuschreiben in der Hoffnung dass es wieder eröffnet wird.

@Krawei
Copy link

Krawei commented Mar 10, 2019

@tuxpoldo und @Endur ,

ich kann auch bestätigen, dass es nun anstandlos durchläuft, sogar so sahnig, dass er keinen "Entpacken-/Extrahierendialog" mehr anzeigt (liegt wohl am kompletten ziehen der "vorgekochten" SQlite-DB, s.o.?).

So oder so danke für Eure Mühen, es zeigt sich wieder: Beharrlichkeit und Teamarbeit zahlt sich aus :). Da haben sich die Kodi-Entwickler ja irgendwie ganz schön nass gemacht, oder? ;)

Das Ticket kann meiner Meinung nach zugemacht werden.

@nilz90 : It seems to work now with the addons' hot fix version 0.6.1.1. You should see a working mediathekview now. :)

@Endur
Copy link

Endur commented Mar 10, 2019

Ja, Du kannst es so releasen. Das Entpacken mit /system/bin/gzip springt ja nur zu allerletzt an, stört nicht bei anderen Betriebssystemen. Ich denke auch, dass /system/bin/gzip per Vorgabe unter Android stets vorhanden ist. Habe eben auf einem Galaxy Note 8 nachgesehen, Android 9, das hat ausser gzip noch das bzip2 Binary vorinstalliert.

tuxpoldo added a commit that referenced this issue Mar 10, 2019
@tuxpoldo tuxpoldo added done The issue was soled or implemented and removed in progress Somebody is working on this issue labels Mar 10, 2019
@tuxpoldo
Copy link
Member

Ich werde die ganzen Entpack-Routinen nochmal so überarbeiten, dass sie alle beim Scheitern der internen Verarbeitung nochmal nachschauen ob es entsprechende Userland-Pendants im Hostsystem gibt und ggf. diese dann verwenden. Das mache ich bei xz eh schon, da die entsprechenden Python-Libraries in Kodi < 19 noch nicht existieren. Der neue Python 3-Code für Kodi 19 wird xz-Dateien dann selbsttätig entpacken können, aber auch dort wird es sinnvoll sein, noch ein Fallback zu haben.

@Endur
Copy link

Endur commented Mar 10, 2019

Ja, ist konsequent und sicher sinnvoll, gründlich auch, das mag ich ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working done The issue was soled or implemented
Projects
None yet
Development

No branches or pull requests

6 participants