Closed dicorynia closed 2 years ago
Cette erreur est tjs sur cette couche ? Si tu fermes Plume et réouvre, le pb existe-t-il tjs ? Si cette couche pose pb tu peux nous l'envoyer ? Merci
Je suis en QGIS 3.22-6
Après investigation avec @WREATCHED et @dicorynia , le problème semble disparaître en remplaçant les lignes suivantes de la définition de plume.plum_ui.Ui_Dialog_plume.safe_pg_connection
:
if not getattr(self, 'mConnectEnCours', False) or self.mConnectEnCours.closed:
self.getAllFromUri()
par :
self.getAllFromUri()
La correction ne pose théoriquement pas de difficulté, puisqu'aucune connexion ne devrait jamais être ouverte hors du gestionnaire de contexte. Mais cela signifie que la condition devrait toujours être remplie, ce qui n'est semble-t-il pas le cas.
La cause reste à identifier.
Le problème n'avait finalement rien à voir avec la ligne susmentionnée de plume.plum_ui.Ui_Dialog_plume.safe_pg_connection
, il avait été "résolu" lors des tests d'hier par la mise à disposition parallèle des fichiers de l'extension sur le serveur PostgreSQL considéré. C'est leur absence qui provoquait le problème.
L'erreur apparaissait dans plume.plum_ui.Ui_Dialog_plume.displayToolBar
(ligne 885), lorsque Plume contrôle la présence de l'extension PlumePg sur la base cible. La variable r
se trouvait être une liste vide lorsque les fichiers de l'extension n'étaient pas disponibles sur le serveur, r[0]
provoquait donc une erreur.
En cause, la fonction plume.pg.queries.query_plume_pg_check
, qui aurait dû renvoyer un enregistrement dans ce cas également, avec False
comme première valeur (PlumePg n'est pas active sur la base cible) et None
comme quatrième valeur (pas de version de référence pour l'extension, puisqu'elle n'est pas disponible sur le serveur).
La fonction plume.pg.queries.query_plume_pg_check
est corrigée pour la version corrective v0.4.1 bêta.
J'ai contrôlé ça de manière assez basique, en testant sur mon serveur PostgreSQL 9.5 (sur lequel PlumePg n'était évidemment pas disponible, et j'y reproduisais bien l'erreur). Accessoirement, cela m'aura permis d'identifier un autre problème qui faisait échouer cette fonction avec PostgreSQL 9.5 (cast manquant sur les paramètres de type int[]
et, par sécurité, j'en ai mis sur tous).
Installation ok (0.4 beta). Mais à la première utilisation quand je clique sur une couche depuis l'explorateur j'ai un message d'erreur List index out of range et rien ne s'affiche dans le panneau.