WebSocket Server
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: WebSocket Server
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?
Was der Purifier eigentlich?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: WebSocket Server
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.
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: WebSocket Server
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

Du kannst dir den Code hier herunterladen:
https://doppelkopf-cafe.de/stevieservertest.zip
Zuletzt geändert von stevie1401 am 03.04.2025 19:22, insgesamt 2-mal geändert.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: WebSocket Server
Einfach in eine ZIP packen und z.B. diesen Webdienst nutzen: https://wormhole.app/
Re: WebSocket Server
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:
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
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.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.
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
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: WebSocket Server
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.

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.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: WebSocket Server
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"
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"

Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: WebSocket Server
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.
-
- Beiträge: 700
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: WebSocket Server
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.


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.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: WebSocket Server
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.
Es scheint wirklich ein Bug in der Linux-Version zu sein. Mal sehen wie schnell das behoben sein wird.