Kodi-vStream / venom-xbmc-addons

Addon de Streaming français pour Xbmc
GNU General Public License v3.0
495 stars 275 forks source link

Bug avec OSMC - Kodi 18.6 #2829

Closed AlexSchieving closed 4 years ago

AlexSchieving commented 4 years ago

Décrivez le bug Bug au lancement de l’addon sur OMSC ( Kodi 18.6)

Votre system

Nous devons le reproduire Bug au lancement de l’addon.

Log L’accès un votre fichier log seras un plus. Pour savoir comment uploader votre log voir:

https://ares-project.uk/logupload/log.php?id=266931

Image Si votre soucis est visuel faite une capture d’écran.

Plus Ajoutez plus d'information sur le problème ici.

AlexSchieving commented 4 years ago

Edit: Version Vstream: 0.7.8.

TmpName commented 4 years ago

C'est survenu d'un coup ?

Y aurait pas un caractere a la con dans un chemin de repertoire quelque part ?

Ou alors c'est un probleme de droit, pas d'acces pour modifier le fichier de donnée.

yodidon commented 4 years ago

Au vu du log tout les éléments vstream ne charge pas non ?

AlexSchieving commented 4 years ago

Pour te répondre @TmpName , je n’avais jamais essayé votre Addon avant hier. Donc pour moi ce n’est pas venu avec la dernière version mais directement quand je l’ai installé. Je n’ai pas de souci sur les autres addons (Venom, Tempest, etc.) donc je ne pense pas que ce soit une question de « Path ».

@yodidon quelque chose à faire de mon côté ? (Parametrage quelconque)

TmpName commented 4 years ago

File "/home/osmc/.kodi/addons/plugin.video.vstream/resources/lib/db.py", line 39, in init VSlog('Erreur: Impossible d\'écrire sur %s' % self.REALDB ) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 21: ordinal not in range(128)

Il y aurait un probleme de codage, mais tu n'es pas le premier a mettre des caracteres accentué, si c'etait ca, y aurait plus de monde avec le probleme

    DB = 'special://userdata/addon_data/plugin.video.vstream/vstream.db'
    REALDB = xbmc.translatePath(DB).decode('utf-8')
            if not xbmcvfs.exists(self.DB):
                self.db = sqlite.connect(self.REALDB)
                self.db.row_factory = sqlite.Row
                self.dbcur = self.db.cursor()
                self._create_tables()

C'est la partie qui bloque. Il est ou chez toi le fichier plugin.video.vstream ? Dans la mesure ou le code a meme des problemes pour ecrire la valeur de REALDB, je me dis que ca doit deconner des la deuxieme ligne.

yodidon commented 4 years ago

Moi j’ai essayé et bien aimé osmc, mais j’ai peur que ce soit pas trop suivi, si tu veux pas t’embêter , et si je me souvient tu es sur Raspberry, je te conseille de passer sûr libre Elec, simple et rzrerement de souci avec l’adon, c’est pas une réponse ultra développeur mais plutôt simple user

AlexSchieving commented 4 years ago

Je ne suis pas sûr de comprendre la question mais il est dans le meme dossier que les autres extensions vidéo d’OSMC: /home/osmc/.kodi/addons

A moins que tu ne parles du fichier récupérer sur le repository Vstream ?

yodidon commented 4 years ago

Dans le salon je suis avec un pi3 sur libreelec et Kodi 18.5, et à vrai dire a part l’es problème commun cela fonctionne depuis 2 ans

yodidon commented 4 years ago

Mais je répète je suis pas contre osbmc et j’ai aucun contact avec libreelec

AlexSchieving commented 4 years ago

@TmpName Maintenant que je vois le bout de code en question, est ce que cela peut être du si aucune database n’est définie ? Je ne crois pas avoir eu avoir besoin de le faire en initialisant mon boudin

sizanic commented 4 years ago

La derniere version 0.7.8 ne s'installe plus directement sur android.

Que ce soit sur OSMC, Nodi et même KODI officielle !

Mais elle peut s'installer sur une mise à jour d'une version précédente.

yodidon commented 4 years ago

Là on parle d’une installe sur Raspberry et je peux presque affirmer que ce n’est donc pas sur androïde

sizanic commented 4 years ago

Donc il n'y a pas que sur Android que la version 0.7.8 ne sait pas créer la base.

Perso, sur android, je m'en suis sortie en installant une ancienne version, puis en faisant la mise à jour.

AlexSchieving commented 4 years ago

@sizanic peux tu me dire comment me procurer une version antérieure sur Kodi / OSMC stp ?

sizanic commented 4 years ago

La voici :

https://github.com/Kodi-vStream/venom-xbmc-addons/releases/tag/0.7.7

TmpName commented 4 years ago

@sizanic j'ai pas android, mais il se passe quoi en fait ? Pourquoi la 0.7.8 a des problemes ?

sizanic commented 4 years ago

On a tous cette erreur en l'installant, lors de la création de la base (que tu a déjà citée) :

File "/home/osmc/.kodi/addons/plugin.video.vstream/resources/lib/db.py", line 39, in init
VSlog('Erreur: Impossible d'écrire sur %s' % self.REALDB )
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 21: ordinal not in range(128)

Mais je ne trouve pas pourquoi en comparant les différences de code. Faut que je regarde autrement, en debug et à la recherche du caractère 0xc3.

TmpName commented 4 years ago

Ok donc je devrais pouvoir reproduire le bug si je supprime le fichier ?

Arias800 commented 4 years ago

C'est possible que ce sois une corruption de la base de donnée car cette modification https://github.com/Kodi-vStream/venom-xbmc-addons/commit/bf4c49436a5d6293b1579879bce26e8fae269666#diff-c9347c4d54046e7cd617f50ca805f4c3 (que j'ai revert) "cassais" les bases de données.

sizanic commented 4 years ago

Non, car dans la 0.7.8 il y a la ligne comme avant, et on parle d'une installation sur du vierge, donc sans base.

sizanic commented 4 years ago

Je ne sais pas si le souci apparaît sur une installation Windows vierge.

Arias800 commented 4 years ago

Normalement c'est corriger dans la beta. (https://github.com/Kodi-vStream/venom-xbmc-addons/commit/d374aa91a26c02483ca68fba89d22cb08345e5b2)

sizanic commented 4 years ago

Mais oui, tout simplement. Ce n'était pas un problème de création de la table mais l'erreur est bien à la ligne 39 ! Donc au moment du log ! LOL

Par contre on appelle quand même trop souvent la création de table, d'où la modif que je voulais mettre en place : https://github.com/Kodi-vStream/venom-xbmc-addons/commit/bf4c49436a5d6293b1579879bce26e8fae269666#diff-c9347c4d54046e7cd617f50ca805f4c3

Arias800 commented 4 years ago

Oui mais pour une raison inconnu ça déclenche un bug sur Android. A la limite on peu vérifié l'os utiliser et on peut exécuter ce code uniquement pour Android. Mais je suis pas sur que ce sois vraiment utile d'allez si loin.

sizanic commented 4 years ago

Ce qui serait vraiment utile c'est de trouver le bug et de le corriger. Mais ce serait peut être beaucoup de travail pour un gain minime.

Arias800 commented 4 years ago

Je suis pas sur que le bug sois de notre coter, car le seul moyens de potentiellement corriger le bug serai de recréer le fichier une fois qu'il est vidé. Mais je suis pas sur que ce sois utile et j'ai peur que ca ne provoque plus de bug qu'autre chose.

sizanic commented 4 years ago

Parle-t-on de la même chose ? J'ai compris que le bug arrive lorsque qu'on retire cette ligne : cDb()._create_tables()

Il n'est pas question de fichier vidé.

Et je ne vois pas ce qui peut provoquer un bug dans ce code.

Arias800 commented 4 years ago

Le bug se déclenche lorsque la personne vide la base de donnée depuis les paramètre de Vstream. D’après la description du bug, c'est comme si Vstream supprimais le fichier de la base de donnée au lieu de simplement la vidé. Conséquence logique, tout ce qui utilise les bases de données devient inutilisable puisque le fichier db n'existe plus.

sizanic commented 4 years ago

Merci c'est très clair. Et c'est clair que j'aurais jamais trouvé le scénario pour reproduire la problème. On laisse comme ça alors.

Par contre il y a quand même un souci que tout ça nous a révélé, car d'après ce code :

       try:
            #if not os.path.exists(self.cache):
            if not xbmcvfs.exists(self.DB):
                self.db = sqlite.connect(self.REALDB)
                self.db.row_factory = sqlite.Row
                self.dbcur = self.db.cursor()
                self._create_tables()
                return
        except:
            VSlog('Erreur: Impossible d\'ecrire sur %s' % self.REALDB )
            pass

Si ça plante dans VSlog c'est qu'une exception a été levée. Et ça ne devrait pas !

Donc maintenant on a un beau log qui ne plante pas mais on devrait même pas avoir de log.

ça reste à investiguer ...

Arias800 commented 4 years ago

Pas forcement, même si le code n'est pas exécuter il est quand même interpréter et je pense que c'est a ce moment que Vstream plantait. Donc il se peu que ce sois totalement normal.

chrysal commented 4 years ago

Pour information en essayant d'utiliser vStream sur xubuntu 18.04 j'ai obtenu le même message d'erreur :
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 21: ordinal not in range(128) Pour contourner (sans trop chercher) j'ai ajouté ça dans le fichier plugin.video.vstream/resources/lib/db.py : import sys reload(sys) sys.setdefaultencoding('utf-8') C'est surement pas la bonne méthode mais ça a fonctionné sur mon install, si ça peut vous orienter vers le bug ...

sizanic commented 4 years ago

Merci @chrysal En effet un problème d'encodage UTF-8. On va s'inspirer de ta solution pour l'utiliser.

sizanic commented 4 years ago

Nouvelle mise à jour 0.7.9 disponible, elle corrige les problèmes d'installation ...