Seite 8 von 9
Re: WebSocket Server
Verfasst: 03.04.2025 18:05
von stevie1401
MUSS der Purifier an sein? Ich habe ihn AUS, weil ich sonst bei meinem eigenen Server die Daten nicht laden kann, weil das zu lange dauern würde.
Was der Purifier eigentlich?
Re: WebSocket Server
Verfasst: 03.04.2025 18:36
von Dadido3
Der Purifier dient zum Aufsprüren von Schreibzugriffen außerhalb der erlaubten/alloziierten Speicherbereiche. Ob dieser aber hilfreich ist, hängt davon ab wodurch der Fehler verursacht wird.
Re: WebSocket Server
Verfasst: 03.04.2025 19:16
von stevie1401
Ok, Linux frisch installiert, Purebasic 620 Beta4 raufgemacht. Deinen Code getestet, Server schmiert sofort ab

Du kannst dir den Code hier herunterladen:
https://doppelkopf-cafe.de/stevieservertest.zip
Re: WebSocket Server
Verfasst: 03.04.2025 19:20
von Dadido3
Einfach in eine ZIP packen und z.B. diesen Webdienst nutzen:
https://wormhole.app/
Re: WebSocket Server
Verfasst: 04.04.2025 02:21
von Dadido3
Ok, ich habe noch ein wenig experimentiert, konnte aber bis jetzt immer noch keinen Crash hervorrufen. Aber ich habe die erhöhte CPU-Auslastung wie du sie beschrieben hast beobachten können:
stevie1401 hat geschrieben: 03.04.2025 15:56
Ab und zu geht der Server bei den ersten Malen NICHT ins Nirvana. Dann bekomme ich allerdings plötzlich eine CPUauslastung von 100%, die erst dann runtergeht, wenn ich den Server beende.
Und ich konnte auch den Übeltäter ausmachen. Unter Linux verhalten sich die Mutexes "unfairer", und es kam aufgrund der Anzahl an Clients und der Versuche Daten zu senden zu einer Situation wo der "Hauptthread" den "Eventthread" zum Großteil der Zeit blockiert hat. Das Problem hierbei ist, dass der "Eventthread" die Logik beinhaltet um die Verbindung zu den Clients zu trennen. Somit hat sich der Server in einen Soft-Lock maneuvriert.
Theoretisch gab es für den "Eventthread" hunderte male in der Sekunde die Möglichkeit den entsprechenden Mutex zu sperren. Aber anscheinend war das Zeitfenster dafür zu kurz. Unter Windows funktioniert das seltsamerweise, dort teilen sich Threads die Mutexes besser auf.
Ich habe das Problem jetzt gelöst, indem ich die beiden internen Threads zusammengefasst habe. Und dabei habe ich auch noch ein paar andere Kleinigkeiten optimiert.
Seltsamerweise kam es bei mir aber nie zu einem Crash, sondern immer nur zu dem beschriebenen "Soft-lock". Daher kann ich nicht sagen, ob es bei dir nun funktionieren wird.
Hier der Link zur neuen Version:
https://github.com/Dadido3/WebSocket_Se ... tag/v1.007
Re: WebSocket Server
Verfasst: 04.04.2025 08:15
von stevie1401
Vielen Dank für deine Bemühungen

Ich habe dir als PN ja noch einmal einen Film geschickt, indem du sehen kannst, wie der Server sofort abschmiert.
Leider ist auch bei deiner neuen Version das gleiche Verhalten
Da das Verhalt ja auch bei deinem Threadloser Server auftritt muss es etwas anderes sein.
Ich habe die Listen in Verdacht. Mit denen habe ich unter Linux immer Probleme gehabt.
Ich versuche jetzt mal selber deine Clientlisten in ein normales Array umzuwanden.
Re: WebSocket Server
Verfasst: 04.04.2025 09:08
von stevie1401
Ich habe jetzt bei deiner 07 Version die globalen Clients in ein Array umgewandelt. Und siehe da: Der Server stürzt nicht mehr ab!
Dann habe ich das auch bei dem threadlosen Server probiert. Dort hält der Server zumindest länger durch. Erst nach dem 5- 6 Crashtest geht der Server ins Nirvana. Einige Male kann ich also Testen ohne dass er abstürzt.
Ich bin mir sicher, wenn man alle Listen in Arrays umwandelt, wird der Server rund laufen.
Ich weiss nur nicht, ob ich die internen Listen auch in Arrays umwandel kann. Für mich ist der Code nur sehr schwer zu lesen.
Ich programmiere wirklich "Basic"

Re: WebSocket Server
Verfasst: 04.04.2025 13:34
von Dadido3
Ok, anstatt Debian 12 habe ich mir jetzt mal Mint 22.1 installiert. Und der Prozess beendet sich sofort nachdem die Verbindungen geschlossen werden, genau wie du es beschrieben hast. Mal gucken wie weit ich das Problem reduzieren und eingrenzen kann. Ich melde mich zurück falls ich mehr Details habe.
Re: WebSocket Server
Verfasst: 04.04.2025 15:29
von stevie1401
Toll
Solltest du Purebasic-Bugs entdecken, bitte unbedingt im engischen Forum posten, Fred macht ja gerade wieder Updates, allerdings nur für Windows. Vielleicht gibt es dann ja auch bald noch mal Linux-Updates.
Re: WebSocket Server
Verfasst: 04.04.2025 17:50
von Dadido3
Hier ist nun der Bugreport:
https://www.purebasic.fr/english/viewtopic.php?t=86674
Es scheint wirklich ein Bug in der Linux-Version zu sein. Mal sehen wie schnell das behoben sein wird.