Welcome to the LimeSurvey Community Forum

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

Database inconsistent

More
3 years 2 months ago #212033 by Pit
Database inconsistent was created by Pit
Hallo zusammen,
gerade bin ich über einen Bug in meiner Installation gestolpert, der offenischtlich durch Updates meiner alten Version verursacht wird:

Limesurvey: 4.4.7+210215
mysql: 5.0.12
PHP: 7.4.15

Fehler: Die globalen Einstellungen einer Umfrage lassen sich nicht speichern.

Ursache:
Die Tabellen "answers" und "questions" enthalten noch das Feld "language", was bei der aktuellen Limesurvey nicht mehr vorhanden sein sollte.
Dadurch bricht der ajax-Aufruf der Speicherung mit einem Fehler ab, weil in der Funktion "cleanLanguagesFromSurvey" in "common_helper.php" die sql-Abfrage nun mehrdeutige Angaben des Feldes "language" enthält: "column language is ambiguous".

Maßnahmen:
1. In "cleanLanguagesFromSurvey" das Feld language qualifiziert mit "ls.language" => Fehler tritt nicht mehr auf.
2. Löschen des Feldes language in Tabelle "answers" => Limesurvey ok
3. Löschen des Feldes language in Tabelle "questions" => Limesurvey bricht sofort mit Fehlermeldung ab, dass dieses Feld nicht mehr vorhanden ist.

Problem:
- Irgendwann hat ein Update die Datenbank in diesen inkonsistenten Zustand gebracht.
- Unklar ist auch, warum das Feld "language" doch noch in Tabelle "questions" gebraucht wird, obwohl in der Version 4.4.7 dieses Feld bei einer neuen Installation nicht mehr erzeugt wird.
- Der Eingriff in "cleanLanguagesFromSurvey" ist ja nur ein Workaround und wird beim nächsten Update überschrieben.

Meine Fragen also:
1. Wie bekomme ich die Datenbank wieder in einen sauberen Zustand?
2. Warum wird immer noch auf das Feld "language" in "questions" referenziert?

Falls hier jemand mit einem ähnlichen Fehler konfrontiert wird oder falls jemand eine Lösung weiß: Beide sind willkommen.

Eventuell ist dies auch interessant für die Entwickler.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 months ago #212052 by Joffm
Replied by Joffm on topic Database inconsistent
Das ist auf jeden Fall interessant für die Entwickler.
Daher erstelle einen Bug-Report dazu, in welchem Du genau die Schritte angibst, die zu diesem Zustand der Datenbank führten.
Also: Von welcher Version wurde das Update gemacht?
Wie wurde das Update gemacht? Usw.

Joffm

Selbst kann ich dazu nichts beitragen, da ich nie von einer Major-Version zur nächsten update.
Das wird neu installiert.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
3 years 2 months ago - 3 years 2 months ago #212057 by Pit
Replied by Pit on topic Database inconsistent
Ich habe keine Ahnung, wo der Bug-Report erstellt wird. Aber ich bin ein ganzes Stück weiter:

In der besagten Funktion "cleanLanguagesFromSurvey" hat sich etwas geändert von Version3 auf Version4:
V3:
Kein "LEFT JOIN", deshalb auch keine mehrdeutige Verwendung von Feld "language".

V4:
"LEFT JOIN" mit Tabellen answers, answer_l10ns und questions. Deshalb die Mehrdeutigkeit des Feldes language ("ambiguous").

Der Fehler tritt reproduzierbar auf. Das kann jeder selbst testen.

Deshalb mein Vorschlag:
Das Feld "language" qualifizieren mit ls.language, a.language oder q.language.
Da habe ich jetzt nicht soviel Verständnis in die Programmstruktur.

AUSSERDEM:
Im Installationprozess muss unbedingt für die Tabellen answers und questions das Feld language wieder hinzugefügt werden.

Das kannst du gerne so weiter geben.
Last edit: 3 years 2 months ago by Pit.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 months ago #212058 by Joffm
Replied by Joffm on topic Database inconsistent
Ich habe nichts weiterzugeben.
Ich bin kein Angestellter der LimeSurvey GmbH und habe mit der Entwicklung nichts zu tun.
Wir, die wir hier im Forum aktiv sind, sind auch nur Benutzer des Programms, die in ihrer Freizeit versuchen, anderen Benutzern zu helfen.

Also:
Bug Report hier:
[url] community.limesurvey.org/bug-tracker/ [/url]
Login mit denselben Daten wie hier im Forum.
Eventuell musst Du rechts oben dann "Bug Report" auswählen.
 

Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
3 years 2 months ago #212059 by Pit
Replied by Pit on topic Database inconsistent
Sorry, wollte dir nicht auf die Füße treten. bug report ist erstellt. Danke für den Hinweis.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 months ago #212077 by Joffm
Replied by Joffm on topic Database inconsistent
"Auf die Füße treten"? Quatsch.
Ich wollte auch nur ausdrücken, dass Du mehr im Thema steckst, während ich jetzt versuchen müsste, dies irgendwie "nachzubauen".

Gut, ich habe einmal ein Update einer 3.x. Installation normal, händisch auf 4.4.8. gemacht.
Es passierte, wie vorhersehbar, nichts Besonderes


 

Und die "language"-Felder sind auch weg.
Aber Du sagtest ja, dass Du vermutest, es sei schon bei einm früheren Update passiert.

Schauen wir einmal.

Bis dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
3 years 2 months ago - 3 years 2 months ago #212079 by Pit
Replied by Pit on topic Database inconsistent
Danke, für dein Interesse.
Ich habe ja nun weiter geforscht und es ist so, dass die language-Felder von v3 auf v4 (bei Neuinstallation) verschwinden.

Wenn du schon dabei bist, kannst du ja mal testen, ob du die globalen Einstellungen einer Umfrage speichern kannst. Beobachte das am besten mit der Konsole im Browser (F12).

Da sollte ein Fehler 500 auftreten und es passiert nichts, also kein Speichern der Änderungen.
Last edit: 3 years 2 months ago by Pit.
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 2 months ago #212085 by holch
Replied by holch on topic Database inconsistent
Ja, 4.x ist halt noch nicht stabil. Da werde noch mehr solcher Dinger kommen. Daher eifrig weiter testen.

Danke für den Bug-Report, denn ein Bug der nicht berichtet wird, der wird wohl auch nicht gefixed.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
More
3 years 2 months ago #212109 by jelo
Replied by jelo on topic Database inconsistent
Link zum Bugreport (falls jemand später danach sucht):
bugs.limesurvey.org/view.php?id=17097

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose