Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Message de problème de sauvegarde : cache navigateur ?

  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
8 years 3 months ago #128612 by riqcles
Bonjour,
dans un précédent sujet :
www.limesurvey.org/en/forum/french-forum...avec-postgresql-9-xx

j'avais indiqué que je n'arrivais pas à reproduire l'erreur qui était aléatoire. :dry:

Pré-requis : pas de gestion des sessions par la BDD.
PostgreSQL 9.4 (pas testé sous MySql vu l'acharnement pour avoir cette erreur :evil: )
Réponses daté
Captcha à l'accès
pas de table d'invitation et questionnaire non anonyme

AVOIR 2 Questionnaires ACTIF dans limesurvey.

Testé sous Firefox 31.8

En fait, elle apparait si :
- 1 -
a) en adminstrateur, je teste le questionnaire A (319191) en utilisant l'URL (et pas la roue dentée)
b) saisie du captcha et j'appuie sur "Suivant"
c) je reponds aux questions --> "Suivant"
d) je ferme l'onglet

- 2 -
a) en administrateur, je choisi le questionnaire B (861686) et je le test avec l'URL
b) saisie du captcha et j'appuie sur "Suivant"
c) le message d'erreur 'Non sauvegardé' apparait
d) un mail est envoyé à l'admin avec la liste des questions et le code SQL : VIDE (serveur mail non actif dans l'environnement de Dev --> a corrigé par moi :lol: , je ne peux pas vous transmettre le mail :sick: )


N.B : pour tous ces tests, le debug du fichier config.php n'est pas activé.

Si on refait les étapes avec le debug activé mais sans celui du code SQL, on obtient ceci dans l'étape - 2 - :

Error executing query in dbExecuteAssoc:CDbCommand n'a pas pu exécuter la commande SQL : SQLSTATE[42703]: Undefined column: 7 ERREUR: la colonne « 319191X8X77SQ001 » de la relation « lime_survey_861686 » n'existe pas LINE 1: ... "lastpage"=0, "datestamp"='2015-11-19 15:46:09', "319191X8X... ^. The SQL statement executed was: UPDATE lime_survey_861686 SET "lastpage"=0, "datestamp"='2015-11-19 15:46:09', "319191X8X77SQ001"=NULL, "319191X8X77SQ002"=NULL, "319191X8X79SQ001"=NULL, "319191X8X79SQ002"=NULL, "319191X8X79SQ003"=NULL, "319191X8X78SQ001"=NULL, "319191X8X78SQ002"=NULL, "319191X8X78SQ003"=NULL, "319191X8X80"=NULL, "861686X16X158SQ001"=NULL, "861686X16X159SQ001"=NULL, "861686X16X159SQ002"=NULL, "861686X16X160SQ001"=NULL, "861686X16X160SQ002"=NULL, "861686X16X161"=NULL WHERE ID=184




On remarque que l'ID du questionnaire A (319191) avec ses groupes et questions est présent, avec ceux du questionnaire B (861686). :silly:


Si j'appuie sur la touche F5 pour raffraichir la page (et normalement vider le cache --> on ne peux pas en standard, demander à Firefox de nettoyer le cache à chaque affichage de la page), le problème ne se présente plus. :silly: :silly:


Mais je pense que pour la partie gestion de la session en cours de réponse :
une partie est sur le poste client (navigateur)
une autre est sur le serveur (CentOs 7)

Est-il possible que la session serveur ne s'efface pas tout de suite, et permet à un autre utilisateur de répondre au questionnaire, en générant le message d'erreur de sauvegarde ?


Je me pose la question car lorsque je teste le questionnaire, pas de problème, mais lorsque je demande au client final de faire le test, il a ce message d'erreur de sauvegarde.
Et lorsque je teste à mon tour, j'ai le message, puis a force de tester, le message n'apparait plus et impossible de le faire ré-apparaitre dans l'immédiat.


Si c'était en dans l'environnement de recette....mais c'est dans la production avec mes 400 questionnaires... :woohoo:


Je pense que l'utilisation des sessions stockés dans la BDD résoudrait mon problème (et d'autre de sessions expirées), mais cela ne fonctionne toujours pas pour Postgres.

Des idées ? des pistes ? je prends tout :whistle:

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 3 months ago #128626 by DenisChenu
Bug de session non renouvelée .

C'est bien la dernière version ? Normalement pour les sauvegardes : la variable de session contient le numéro de questionnaire .... cela ne devrait pas arriver.

Même chose que sur le poste précédent : bug à réouvrir ? Si oui : donne moi le meilleur bug et je le réouvre.

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The following user(s) said Thank You: riqcles
The topic has been locked.
  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
8 years 3 months ago #128632 by riqcles
Oui, il s'agit de la 151018...arrghh ! :woohoo: une nouvelle viens de sortir...151109...
Je vais refaire des tests avec celle-ci.

Pour le bug de session, il est pas du tout évident à reproduire, j'ai l'impression que c'est du hazard :blink:

Mais il se reproduit souvent lorsque les gens répondent (il y a des questionnaires qui possèdent plus de 1000 invitations) et je peux recevoir une vingtaine de message du type de la capture d'écran.

Il est vrai que je demande plus un avis, car reproduire cette erreur tiens de l'exploit :woohoo:

P.S : j'ai fait le nécessaire dans l'autre post pour les bugs à réouvrir.

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
  • riqcles
  • riqcles's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
More
7 years 9 months ago #137402 by riqcles
Bonjour,
je me réponds à moi-même après avoir trouvé un semblant de solution :

Ce problème ce produit sous certaines conditions, voici un exemple avec le questionnaire 932546 :

Etape 1 : le questionnaire est inactif (création du questionnaire 932546 et réglages divers)
Etape 2 : activer le questionnaire pour tester son implémentation avec l'url
Etape 3 : désactiver le questionnaire (pour supprimer les réponses anciennes --> création d'un fichier lime_old_survey_932546_20150701144004 dans la base de données
Etape 4 : réactiver le questionnaire 932546
Etape 5 : tester le questionnaire avec le lien.

Parfois pas de plantage, et parfois si.

Pour résoudre :
-1- Désactiver le questionnaire
-2- En utilisant la fonction : Vérification de l'intégrité des données, puis en supprimant la ou les ancienne(s) table(s) lié aux différentes séquences d'activation - désactivation (on peut parfois le faire 10 fois) : lime_old_survey_932546_20150701144004
-3- Réactiver le questionnaire.

ça fonctionne :woohoo:

Bon, il est vrai que mon architecture est un peu particulière, mais il faut penser à faire cette vérification de temps en temps, pour ne pas avoir des centaines de lignes à supprimer une par une ( --> feature request pour une selection de tous les éléments ? --> je testerais dans la nouvelle version 2.50 :P )

On sait jamais si cela peut aider d'autres membres.

LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /

Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose