Project

General

Profile

Anomalie #1299

Incompatibilité avec zend-db > 2.9.2

Added by Guillaume Rousse 9 months ago. Updated 20 days ago.

Status:
In Progress
Priority:
Bas
Assignee:
-
Category:
-
Target version:
-
Start date:
09/08/2019
Due date:
% Done:

0%

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

#1

Updated by Johan Cwiklinski 8 months 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 8 months 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 20 days 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 20 days 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

Also available in: Atom PDF