Projet

Général

Profil

Actions

Anomalie #1299

fermé

Incompatibilité avec zend-db > 2.9.2

Ajouté par Guillaume Rousse il y a plus de 5 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Catégorie:
Core
Version cible:
Début:
08/09/2019
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Suite à une mise à jour, je constate que Galette n'est pas compatible avec des versions plus récentes de zend-db que celle qui distribuée avec (2.9.2). Ceci se manifeste au moins à deux endroits.

L'ajout de nouvelles valeur par défaut de préférence échoue systématiquement, ce qui se traduit dans les logs par des messages du type, que l'on retrouve pour chaque requête:
Unable to add missing preferences.Statement could not be executed (HY093 - - )

Ensuite, la modification de champs dynamiques échoue également, avec un message d'erreur de ce type:
An error occurred storing dynamic field. Form name: adh | Error was: Statement could not be executed (HY093 - - )

Ces deux problèmes disparaissent lorsque zend-db est retrogradé à la version 2.9.2. Ils réapparaissent dès le passage aux versions 2.9.3 ou 2.10.0.

Le premier problème correspond à un échec systématique de l'appel à $stmt->execute(), à la ligne 219 de Galette\Core\Preferences, sans que les logs de mariadb ne montrent trace d'une quelconque requêtes INSERT. En examinant le changelog de zend-db 2.9.3, ce changement de la gestion des paramètres semble le coupable idéal: https://github.com/zendframework/zend-db/pull/304


Demandes liées 1 (0 ouverte1 fermée)

Bloque Galette - Evolution #1492: PHP 8 compatibilityFerméJohan Cwiklinski03/10/2020

Actions

Mis à jour par Johan Cwiklinski il y a plus de 5 ans

  • Priorité changé de Normal à Bas

Il ne s'agit pas vraiment d'un bug ; il est impossible de savoir quels changements incompatibles les bibliothèques tierces vont implémenter. Ce sera à prendre en compte lors d'une future mise à jour des bibliothèqes.

Mis à jour par Guillaume Rousse il y a environ 5 ans

Et en cherchant à résoudre le problème moi-même, je suis tombé sur:
https://github.com/zendframework/zend-db/issues/322

Bref, a part surenchérir sur le sujet, je vois mal quoi faire :/

Mis à jour par Johan Cwiklinski il y a plus de 4 ans

  • Statut changé de Nouveau à In Progress

Je pense avoir trouvé ce qui cloche (testé dans les préférences pour le moment, mais je suppose que c'est valable partout).

J'ai relancé le ticket Laminas (https://github.com/laminas/laminas-db/issues/47#issuecomment-625024194).

Mis à jour par Johan Cwiklinski il y a plus de 4 ans

J'ai commencé à contourner le problème, mais ça revient à utiliser des paramètres positionnés partout, ou à utiliser leurs alias +/- prévisibles... Je ne sais pas trop quoi faire : dans un cas comme dans l'autre, c'est plein de modifications à pas mal d'endroits pour... pas grand chose :/

Voir https://github.com/galette/galette/compare/feature/upatelibs

Mis à jour par Johan Cwiklinski il y a plus de 4 ans

PR proposée : https://github.com/laminas/laminas-db/pull/160 - en attente de retours.
Je commence à désespérer d'avoir une réponse.

Mis à jour par Johan Cwiklinski il y a environ 4 ans

Mis à jour par Johan Cwiklinski il y a environ 4 ans

  • Catégorie mis à Core
  • Assigné à mis à Johan Cwiklinski
  • Version cible mis à 0.9.5

Toujours pas de nouvelles côté upstream, malgré mes relances.

Je vais donc intégrer un patch dans Galette directement ; mais les modifications de la PR d'origine sont trop importantes pour que ce soit maintenable à terme.
J'ai bossé sur une version simplifiée qui devrait convenir à Galette, et être relativement aisée à maintenir au besoin.

Je laisse le soin au projet Laminas de corriger leurs bogues ; je ne souhaite pas renouveler l'expérience d'une contribution à leur endroit, ni même mener à terme ce qui a été débuté.

Mis à jour par Johan Cwiklinski il y a environ 4 ans

  • Statut changé de In Progress à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ 4 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF