Project

General

Profile

Anomalie #1299

Incompatibilité avec zend-db > 2.9.2

Added by Guillaume Rousse over 1 year ago. Updated 2 months ago.

Status:
Fermé
Priority:
Bas
Category:
Core
Target version:
Start date:
09/08/2019
Due date:
% Done:

100%

Estimated time:
Version utilisée:
Vote:

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


Related issues

Blocks Galette - Evolution #1492: PHP 8 compatibilityRésoluJohan Cwiklinski10/03/2020

Actions
#1

Updated by Johan Cwiklinski over 1 year ago

  • Priority changed from Normal to 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.

#2

Updated by Guillaume Rousse over 1 year ago

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 :/

#3

Updated by Johan Cwiklinski 8 months ago

  • Status changed from Nouveau to 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).

#4

Updated by Johan Cwiklinski 8 months ago

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

#5

Updated by Johan Cwiklinski 8 months ago

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.

#6

Updated by Johan Cwiklinski 3 months ago

#7

Updated by Johan Cwiklinski 2 months ago

  • Category set to Core
  • Assignee set to Johan Cwiklinski
  • Target version set to 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é.

#8

Updated by Johan Cwiklinski 2 months ago

  • Status changed from In Progress to Résolu
  • % Done changed from 0 to 100
#9

Updated by Johan Cwiklinski 2 months ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF