TSN-Ranksystem icon indicating copy to clipboard operation
TSN-Ranksystem copied to clipboard

SQL Error wenn User zu einem Rank hinzugefügt wird

Open TheChaosToast opened this issue 2 years ago • 23 comments

Ich habe seit geraumer Zeit diesen SQL-Error: `2022-04-29 09:28:53.465333 NONE Initialize Bot... 2022-04-29 09:28:53.465276 NONE ################################################################### 2022-04-29 09:28:53.465083 NONE
2022-04-29 09:28:52.737130 NONE ################################################################### 2022-04-29 09:28:52.736985 NOTICE Received signal to stop! Shutting down!

) [2] => Unknown column 'uuid' in 'where clause' [1] => 1054 [0] => 42S22 ( 2022-04-29 09:28:33.244375 ERROR Executing SQL commands failed: Array 2022-04-29 09:28:33.237162 INFO Setze die online und aktive Zeit des Benutzers 'HardCore <3' (eindeutige Client-ID: lnWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=; Client-Datenbank-ID: 20367) auf Null zurück, da er aus der Ausnahme entfernt wurde. 2022-04-29 09:26:42.498201 NONE Bot starts now his work! 2022-04-29 09:26:42.498082 NONE Config check [done] 2022-04-29 09:26:42.496473 NONE Log Level: 5 - INFO 2022-04-29 09:26:42.496399 NONE Config check started... 2022-04-29 09:26:42.496284 INFO Joined to specified TS channel with channel-ID 486. 2022-04-29 09:26:42.490378 NONE Select virtual server [done] 2022-04-29 09:26:42.484353 NONE Select virtual server... 2022-04-29 09:26:42.484276 INFO TS3 Server version: 3.13.6 on Linux [Build: 1623234157 from 2021-06-09 12:22:37] 2022-04-29 09:26:42.483238 NONE Connection to TS3 Server established. 2022-04-29 09:26:42.469128 NONE Connect to TS3 Server (Address: 'ts.myts3.de' Voice-Port: '9987' Query-Port: '10011' SSH: '0' Query-Slowmode: '0.0'). 2022-04-29 09:26:42.469052 NOTICE Loading addons [done] 2022-04-29 09:26:42.468387 NOTICE Addon: 'channelinfo_toplist' [ON] 2022-04-29 09:26:42.467912 NOTICE Addon: 'assign_groups' [ON] 2022-04-29 09:26:42.467417 NOTICE Loading addons... 2022-04-29 09:26:42.467389 NONE Ranksystem Version: 1.3.19 (on Update-Channel: stable) 2022-04-29 09:26:42.467359 NOTICE Check Ranksystem files for updates [done] 2022-04-29 09:26:42.467324 NOTICE Check Ranksystem files for updates... 2022-04-29 09:26:42.467278 INFO Check Ranksystem database for updates [done] 2022-04-29 09:26:42.467168 INFO No newer version detected; Database check finished. 2022-04-29 09:26:42.457628 INFO Check files permissions [done] 2022-04-29 09:26:42.445687 INFO Check files permissions... 2022-04-29 09:26:42.445656 INFO Check Ranksystem database for updates... 2022-04-29 09:26:42.445620 NONE Starting connection test to the Ranksystem update-server [done] 2022-04-29 09:26:42.445509 NONE Connection test successful 2022-04-29 09:26:42.432080 NONE Starting connection test to the Ranksystem update-server (may need a few seconds)... 2022-04-29 09:26:42.432033 NONE Database Version: 5.5.5-10.5.15-MariaDB-0+deb11u1 2022-04-29 09:26:42.431981 NONE Using PHP Version: 7.4.28 2022-04-29 09:26:42.431898 NONE Running on OS: Linux 5.10.0-13-amd64 2022-04-29 09:26:42.422646 NONE Initialize Bot... 2022-04-29 09:26:42.422601 NONE ###################################################################`

Der User befand sich in einer Gruppe die nicht am Ranking teilnehmen wollte. Da er sich nun anders entschieden hat, habe ich den betreffenden User aus dieser Gruppe entfernt, so dass er wieder am Ranking teilnehmen darf. Diese Fehlermeldungen ziehen sich so lange hin bis der User den Server verlässt.

Ich habe heute morgen mit einem User getestet, deswegen ist das Ranksystem neu gestartet worden.

Eingesetzt wird, abgesehen von der Serversoftware, das Ranksystem Version 1.3.19

TheChaosToast avatar Apr 29 '22 07:04 TheChaosToast

Ich habe eine Lösung gefunden, die allerdings nicht dauerhaft so sein sollte: Das Problem scheint aufzutreten bei PHP Versionen höher als 7.4.X

Ich habe ein PHP downgrade auf 7.3.33 gemacht, damit läuft alles wie es soll.

TheChaosToast avatar Apr 30 '22 12:04 TheChaosToast

Ich kann dir zwar nicht sagen, weswegen es ab 7.4.X auftaucht, weil eigentlich müsste der fehler auch davor auftreten. Also so gesehen müsste der fehler auch in der darunter liegenden version auftauchen, es könnte aber sein, dass er dort nicht im log auftaucht. Ich könnte zwar nen fix mitteilen, da ich aber nicht sicher bin, ob ein anderer dann auftritt, schreibe ich die Lösung die im Kopf schwebt mal lieber nicht.

@Newcomer1989 https://github.com/Newcomer1989/TSN-Ranksystem/blob/575e215e0bb5bd284cb5608641c75f336e245b94/jobs/calc_user.php#L112

Das Feld uuid existiert in der user_snapshot Tabelle nicht.

monster010 avatar Apr 30 '22 12:04 monster010

Servus,

soweit habe ich die Fehlermeldung auch verstanden. Aber sämtliche Tests in den vergangenen Tagen haben mir gezeigt daß es ab der PHP Version 7.4.XX auftritt. Auch das Problem mit dem hohen RAM Verbrauch tritt auch erst ab der Version 7.4.XX auf. (Siehe Post vorher)

Mit der 7.3.33 hab ich absolut 0 Probleme.

Ich würde mich freuen wenn das behoben wird, da ich ungern eine ältere Version von PHP in Betrieb habe ;)

TheChaosToast avatar May 05 '22 06:05 TheChaosToast

Heyho,

das interessante ist, ich habe dieses Problem mit der PHP 7.4 nicht. Ich teste aktuell nochmal die 8.0 (8.1 nicht kompatible), dass Problem welches im Issue #870 beschrieben wird, konnte ich auch nicht feststellen, zumindest nicht in diesem ausmaß. Bei mir ist der RAM verbrauch minimal höher.

Was ich jetzt noch testen möchte ist, einen user aus dem System entfernen, ob dadurch das SQL problem auftritt.

EDIT (08.05): Habs jetzt auch mit PHP 8.0 probiert und auch hierbei ist bei mir nur ein minimal höherer RAM Verbrauch vorhanden.

Was mir dabei aber aufgefallen ist, entweder weil ich es falsch verstehe oder weil es falsch ist. Wenn der Ausnahme Modus auf Zeit zurücksetzt stellt, wird jeder Benutzer ausgeschlossen, außer der hat eine der Ausnahme Gruppen?

monster010 avatar May 07 '22 17:05 monster010

Servus, ich habe nocheinmal rumprobiert. Das Problem mit dem RAM und den oben genannten Log tritt auf ab PHP 7.4.XX und nach oben 8.X.XX. Setze ich die 7.3.33 (meine letzte aktuelle PHP Version die keine Probleme macht) tritt es nicht auf.

Bei uns ist es so eingestellt, das die User von einem Bot in die Ausnahmegruppe gesetzt werden (Blocked Ranking) und die Zeit zurückgesetzt wird. Nach einem Tag wird die Gruppe vom Ranksystem automatisch wieder entfernt. Das verursacht den oben genannten Fehler.

TheChaosToast avatar May 10 '22 04:05 TheChaosToast

Sorry, dass ich mich erst jetzt dazu melde.

Zur ursprünglichen Topic:

) [2] => Unknown column 'uuid' in 'where clause' [1] => 1054 [0] => 42S22 (

An den PHP Versionen kann das nicht liegen. Es tritt vielmehr konstellationsbedingt auf. Ein User muss vorher unter einer definierten Ausnahme (Webinterface -> Core -> Exceptions) gefallen sein und anschließend aus dieser Ausnahme entfernt worden und gleichzeitig der Modus der Ausnahme (Webinterface -> Core -> Exceptions -> exception mode) auf 'reset time' stehen. Überhaupt nur dann wird der problematische SQL Befehl aufgerufen. Also völlig unabhängig der PHP Version. In dem SQL Befehl stand noch ein überbleibsel mit der UUID, welche wir vor einiger Zeit aus Perfomance Gründen gegen die CLDBID getauscht hatten.

Der Fehler wird in der nächsten Version behoben.

Werde die Tage auch eine Beta veröffentlichen, wo dies schon Bestandteil sein wird.

Die anderen Themen schaue ich mir nach und nach an. Bitte gebt mir da etwas Zeit.

Newcomer1989 avatar May 31 '22 14:05 Newcomer1989

Das beruhigt mich :)

Grundsätzlich ist die Konstellation bei uns genau so wie du geschrieben hast :). Dann werde ich wohl der Betatester sein.

Allerdings gibt's bei mir das Problem mit dem enormen RAM Verbrauch :(

TheChaosToast avatar May 31 '22 14:05 TheChaosToast

Das mit dem RAM Verbrauch sollten wir uns dann auch auf der Beta anschauen, ob es dort noch besteht.

Ich bin gerade auch einige Dinge für PHP 8.1 am ändern bzw. habe schon einiges geändert. Bei mir kann ich das RAM Thema nicht nachstellen. Evtl. habe ich es dadurch gefixt oder kann es bei mir in der Dev-Umgebung nicht nachstellen. Werde es aber auch parallel mal bei mir beobachten. Gerade läuft der Bot etwas mehr als 5 Std.

<20:48:49> "TSN Ranksystem": Bot is online since 2022-05-31 15:30:11, now 0d, 5h, 18m, 38s.

grafik

Newcomer1989 avatar May 31 '22 18:05 Newcomer1989

@Newcomer1989 habs aktuell mit 8.0 laufen seit 13 Tagen, konnte auch nichts feststellen.

Bot is online since 2022-05-18 06:40:02, now 13 Tag(e), 14 Stunde(n), 28 Minute(n), 38 Sekunde(n).

6RiZgto 1

monster010 avatar May 31 '22 19:05 monster010

Version 1.3.20-beta-1 kann über den Beta-Channel bezogen werden.

Bitte mal schauen, ob das Problem noch besteht.

Newcomer1989 avatar May 31 '22 19:05 Newcomer1989

Habe jetzt unseren Webserver auf PHP 8.0.18 umgestellt, den Bot gestoppt und den Beta Channel ausgewählt. Nur er hat sich kein Update gezogen? Vielleicht kommt es später. Jedenfalls bin ich gespannt und werde Euch hier auf dem laufenden halten.

TheChaosToast avatar Jun 01 '22 08:06 TheChaosToast

@TheChaosToast Du kannst es auch manuell mit !update updaten, wenn ein Update vorhanden ist, wird es dann gezogen.

monster010 avatar Jun 01 '22 10:06 monster010

Jop, hat funktioniert, Vielen Dank.

Jetzt warte ich mal ab was der RAM sagt denn jetzt nach ein paar Stunden waren es schon wieder knapp über 450 MB.

TheChaosToast avatar Jun 01 '22 12:06 TheChaosToast

Bei mir ist immer noch alles im grünen Bereich. Sehr merkwürdig...

<16:56:05> "Newcomer1989": !memory
<16:56:05> "TSN Ranksystem": Allocated memory of PHP for the Ranksystem Bot..
current using: 74808.44 KiB
peak using: 81341.66 KiB
<16:56:07> "Newcomer1989": !uptime
<16:56:08> "TSN Ranksystem": Bot is online since 2022-06-01 00:39:13, now 0d, 16h, 16m, 56s.

grafik

@TheChaosToast Besteht denn die Möglichkeit auf PHP 8.1 zu wechseln? Bzw. PHP 8.0.19 wäre die aktuelle Version in der Reihe. Evtl. ist es auch ein Problem von PHP und hat eigentlich nichts mit dem Bot selbst zu tun.

Newcomer1989 avatar Jun 01 '22 15:06 Newcomer1989

Servus,

Es besteht zwar die Möglichkeit, dann funktioniert unser Forum nicht mehr :(

Bei mir sieht es aktuell so aus: ‎Bot is online since 2022-06-01 14:19:43, now 0 days, 2 hours, 45 mins, 35 secs. Allocated memory of PHP for the Ranksystem Bot.. current using: 343574.69 KiB peak using: 344809.63 KiB

Ich tippe auch auf PHP, denn wie schon öfter geschrieben hab ich das Problem mit 7.3.33 nicht. Ab 7.4 wirds so wie jetzt.

TheChaosToast avatar Jun 01 '22 15:06 TheChaosToast

Aber auf 8.0.19 könntest du gehen, oder? Wäre ja ein reguläres Update..

Newcomer1989 avatar Jun 01 '22 15:06 Newcomer1989

du kannst auch verschiedene Version von PHP gleichzeitig verwenden @TheChaosToast Dafür (glaube) am einfachsten wäre PHP FPM, nutze ich zumindest meistens

monster010 avatar Jun 01 '22 17:06 monster010

@Newcomer1989 aktuell hab ich nur die PHP 7.3.33, 7.4.28, 8.0.18 und 8.1.X zur Verfügung. Ich habe alle durchprobiert mit dem gleichen Ergebnis. Bis auf 7.3.33

Aktuell sieht es so aus: !online: Bot is online since 2022-06-01 14:19:43, now 0 days, 16 hours, 39 mins, 5 secs. !memory: Allocated memory of PHP for the Ranksystem Bot.. current using: 922551.95 KiB peak using: 927123.93 KiB

@monster010 setze ich ein und mit PHP-FPM worker.

Irgendwas muss in den höheren php Versionen anders sein was den RAM Verbrauch ansteigen lässt - nur was? Ich würde jetzt auch wieder auf die alte PHP Version wechseln um zu vermeiden das wichtige Dienste abgeschossen werden.

TheChaosToast avatar Jun 02 '22 05:06 TheChaosToast

So, mal eine kurze Zwischenmeldung:

Aktuell läuft PHP 8.1.5 ohne Probleme. Der RAM ist mit gerade einmal 156 MB belegt. Es schaut gut aus.

Einzig diese Fehlermeldung steht im LOG: `2022-06-02 11:53:50.617906 NOTICE 8192: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated on line 101 in /home/users/meineseite/www/ts-ranking/other/_functions.php

2022-06-02 11:53:15.892651 NOTICE 8192: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated on line 101 in /home/users/meineseite/www/ts-ranking/other/_functions.php

2022-06-02 11:50:23.060371 INFO Lade neues Servergruppen-Icon für die Servergruppe '• Scum' mit der ID: 275 herunter.`

Beta 1.3.20-beta-1 ist im Einsatz, vielleicht hilft das weiter.

TheChaosToast avatar Jun 02 '22 11:06 TheChaosToast

Müsste man sich evtl. mal gemeinsam per Fernwartung anschauen, um auszuschließen, dass es nicht doch irgendwoher vom Bot kommt. Bzw. irgendwie verursacht er das ja. Vielleicht lässt es sich auch umgehen. Aber erst einmal müsste man die genaue Ursache kennen.

@TheChaosToast Wenn du magst, können wir da gerne mal schauen. Bin allerdings das verlängerte Wochenende relativ verplant. Im Laufe der nächsten Woche ginge von meiner Seite in der Abendzeit.

Newcomer1989 avatar Jun 02 '22 21:06 Newcomer1989

Das klingt nach einem guten Plan, leider bin ich die ganze nächste Woche in Spätschicht und nur bis maximal Mittag erreichbar. Dannach geht's in Urlaub und dann steht Umzug an.

Aber Du hast ha ne Beta2 auf den Weg gebracht. Mal gucken wie sich der Bot verhält. Bis jetzt gabs keine Fehlermeldung mehr.

TheChaosToast avatar Jun 03 '22 04:06 TheChaosToast

Evtl. würde es von meiner Seite auch heute (Samstag) in der Abendzeit gehen. Kannst ja gerne einfach mal bei uns auf dem TS vorbei schauen. Voraussetzung wäre natürlich, dass auch das Problem besteht bzw. nachstellbar ist. Sonst haben wir nichts zu analysieren 😅

Newcomer1989 avatar Jun 04 '22 02:06 Newcomer1989

Heute abend ist verdammt schlecht, da ich mit der family unterwegs bin.

Aber ich hab gerade die Logs gecheckt. Ausnahme wurde bei einem User entfernt, Zeit resettet und zählt ordentlich die Level. Die oben genannte Fehlermeldung ist nur in Verbindung mit Schreiben der Channeltoplist aufgetaucht und nur einmal in der ganzen Zeit seit gestern früh. Der RAM Verbrauch ist bei 164 MB.

Aber dennoch, wenn Du noch irgendetwas benötigst, oder noch eine andere Info brauchst, sag mir bescheid, und ich schau wie ich dir das zukommen lassen kann.

Danke dir für deine Hilfe bis jetzt :)

TheChaosToast avatar Jun 04 '22 06:06 TheChaosToast

Ich schließe das Issue mal. Die eigentlich Topic ist ja behoben. Das mit dem Ram-Verbrauch hat sich scheinbar auch erledigt, da ich nichts mehr gehört habe.

Newcomer1989 avatar Dec 23 '22 00:12 Newcomer1989

Heyho, ich muss Dich bitten das noch offen zu lassen. Denn der Fehler mit der hohen Auslastung des Arbeitsspeicher besteht immer noch. Ich habe mich nur nicht gemeldet, weil es mit der jetzigen Version 8.1.6 ohne Probleme läuft.

TheChaosToast avatar Dec 23 '22 10:12 TheChaosToast

Die Topic dieses Issues ist eine andere und ja eigentlich erledigt. Damit es noch übersichtlich bleibt, erstelle gerne ein eigenes Issue bezüglich des RAM Verbrauchs. Wichtig wären alle Infos, die uns helfen das Problem nachzustellen.

Newcomer1989 avatar Dec 23 '22 21:12 Newcomer1989