Ram-Überlastung ab Firefox Version 67 bei Zugriff mittels WebSocket mehrere Tabs verschiedene Logins

  • Firefox-Version
    ab Version 67
    Betriebssystem
    unterschiedlich von XP bis Win 10

    Liebe Forumsmitglieder


    Also ich habe folgendes Problem:

    Wir haben eine Anwendung programmiert, die mittels eines Browsers bedienbar ist. Die Anwendung verbindet sich via Tomcat mit einem Servlet und dann mittels WebSocket verschlüsselt zum Browser (ich hoff, dass ich das so richtig erklärt habe – für Korrekturen (bevorzugt mit guten Links zum genaueren Einlesen) bin ich immer dankbar).

    Die Verschlüsselung kann ich rausnehmen, der Test (siehe unten) läuft gleich ab und liefert in etwa dieselben Ergebnisse, ab Version 67 bekomme ich Probleme. Daher gehe ich davon aus, dass die Verschlüsselung nicht das Problem ist.

    Bei den neueren Versionen des Firefoxes (ab Version 67) wird der Ram des Rechners innerhalb kurzer Zeit stark belastet und nicht mehr freigegeben. Leider weiss ich nicht, wo und wie nach der Ursache suchen.


    Aber erstmal kurz konkret zu meinen Tests:

    _____Testbeschreibung Anfang___________________________

    Also ich habe das System mit verschiedenen Firefox-Versionen getestet.

    Als "Testumgebung" habe ich jede Version einzeln getestet und dann jeweils 5 Tabs zu unserer Seite geöffnet. Jeder Tab loggt sich mit einem anderen User ein.

    Nach dem Einloggen warte ich ein wenig, um die "Grundlast" des Firefoxes mit den 5 Tabs zu bestimmen.

    Danach starte ich mit der "Bedienung" der Website. Jede Änderung wird in der unteren Hälfte des Firefox-Fensters dargestellt (Licht an/aus, Farbe etc.) quasi als aktueller Ist-Zustand. Dieser Ist-Zustand wird bei allen Usern aktualisiert. Also jede Bedienung in Tab1 führt zu einer Änderung im Tab 2, Tab 3, …. Auch führt jede Änderung in Tab 2 zu einer Änderung des Ist-Zustandes in Tab 1, Tab 3 etc.

    Dieser Test wurde verschlüsselt durchgeführt. Unverschlüsselt bekomme ich in etwa dasselbe:

    - Bei Version 43 habe ich mit den gleichen Tabs eine "Grundlast" von ca. 1.5 GB. Hier schaffe ich es durch Bedienung der Website kurzzeitig, dass ich bei 3.6 GB Befüllung lande, dann wird der Ram aber sofort wieder reduziert.

    - Bei Version 66 habe ich mit den gleichen Tabs eine "Grundlast" von ca. 1.8 GB. Der Rest ist analog zu Version 43.

    - Bei Version 67 habe ich mit den gleichen Tabs schon eine "Grundlast" von ca. 2.1 GB. Hier schaffe ich es durch Bedienung der Website innerhalb von ca. 10 Minuten, dass der Ram komplett voll ist (also bei ca. 7.7 GB) und somit das System nicht mehr bedienbar ist.

    - Bei Version 77 habe ich mit den gleichen Tabs schon eine "Grundlast" von ca. 1.9 GB. Hier schaffe ich es durch Bedienung der Website innerhalb von wenigen Minuten, dass der Ram komplett voll ist (also bei ca. 7.7 GB) und somit das System nicht mehr bedienbar ist.

    Wenn ich frühzeitig aufhöre (also ca. bei 6GB – der Rechner ist noch bedienbar), dann braucht der Rechner bei den beiden neueren Versionen zum Teil 10 Minuten, bevor der Ram wieder frei gegeben wird – in dieser Zeit wird an dem Rechner überhaupt nichts gemacht. Schliesse ich den Fox, fällt die Ram-Nutzung sofort auf ca. 900 MB.

    _____Testbeschreibung Ende___________________________

    Andere Browser habe ich nicht versucht, da wir den Firefox brauchen. Es muss bei allen Fox-Versionen funktionieren, da wir keinen Einfluss darauf haben, welcher Firefox genutzt wird.

    Nun meine Fragen:

    - hier spielt ja relativ viel rein vom JavaScript, über die Programmierung des Servlets in Java über die Programmierung der WebSocket-Verbindung über… In all diesen Punkten bin ich nicht sehr sattelfest. Aber warum kann die Version 43 mit dem umgehen und die neueren nicht?

    Könnte das daran liegen, dass noch nicht alles html5 kompatibel ist? und dass jquery auch nicht das neueste ist etc?

    Wurde im Firefox V67 etwas grundlegendes umprogrammiert? Laut den releases eher nicht oder habe ich da was übersehen?

    Wie könnte ich vorgehen, um dem Problem auf die Schliche zu kommen? Kennt jemand irgendwelche Tools etc???


    Vielen Dank für Eure Hilfe

  • Hallo,

    Andere Browser habe ich nicht versucht, da wir den Firefox brauchen.

    Bitte hole das nach. Denn wenn andere Browser das gleiche Problem haben, ist es auch kein Firefox-Problem und das ganze Thema ist obsolet.

    Könnte das daran liegen, dass noch nicht alles html5 kompatibel ist? und dass jquery auch nicht das neueste ist etc?

    Wurde im Firefox V67 etwas grundlegendes umprogrammiert? Laut den releases eher nicht oder habe ich da was übersehen?

    Solche Fragen sind so nicht beantwortbar. Ja, sicher, irgendwelche Dinge wurden auch vor 16 Monaten (!) in Firefox geändert, aber abgesehen davon, dass das nicht gerade gestern war, fehlt in deinem Thema ein Link, um das Problem nachvollziehen zu können. Man muss ein Problem logischerweise sehen, um dazu etwas sagen zu können.

  • Hallo Sören

    Vielen Dank für Deine Antworten.

    Der neueste Chrome hat überhaupt keine Arbeitsspeicherprobleme. Der Arbeitsspeicher bewegt sich zwischen 1.7 und max 1.9 GB - egal wie sehr ich versuche das System zu stressen. Dafür ist die CPU-Auslastung unter Stress etwas höher...

    jquery ist zwischenzeitlich auch geupdatet.

    Ein Link kann ich leider dazu nicht liefern. Das ganze läuft intern. Hatte gehofft, dass ich es mit meiner Textbeschreibung erklären konnte, aber das ist mir wohl nicht gelungen...

    Werde halt weiter irgendwie suchen und testen. Irgendwann finde ich hoffentlich die Ursache.

    Aber trotzdem vielen Dank für Deine Hilfe und alles Gute

  • Ein Link kann ich leider dazu nicht liefern. Das ganze läuft intern. Hatte gehofft, dass ich es mit meiner Textbeschreibung erklären konnte, aber das ist mir wohl nicht gelungen...

    So etwas lässt sich grundsätzlich nicht mit Text beschreiben, denn alles, was du beschreiben kannst, sind die Symptome. Das gibt aber keinen Aufschluss über die Ursache und ohne Ursache ist auch die Behandlung unklar. Deswegen wäre es wichtig, das Problem selbst zu sehen, denn dann könnte man Dinge probieren und versuchen, das Problem einzugrenzen.

    Ansonsten, wenn das Problem wirklich zuverlässig seit einer bestimmten Version auftritt und du keinen Link teilen kannst, könnte ich dir folgendes Tool empfehlen:

    https://mozilla.github.io/mozregression/

    Damit kann man herausfinden, welche Änderung in Firefox Grund für das Auftreten eines Problems ist. Wenn du etwas Zeit hast, magst du das vielleicht ausführen und uns mitteilen, was das Ergebnis ist. Vielleicht lässt sich daraus ja etwas ableiten.

  • jquery Teil von Firefox, sicher?

    https://code.jquery.com/jquery/


    Habt ihr mal die Datenströme aufgezeichnet, wie viel in welche Richtung gesendet wird?

    Der Server kann ja unvermittelt senden wie will und Firefox muss das dann aufnehmen

    https://de.wikipedia.org/wiki/WebSocket

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Hallo DeJaVu

    Nein, nicht vom Firefox, sondern von unserer Programmierung. Hatten bisher eine alte Version eingebunden. Nur hatte ich mich etwas zu früh gefreut - ich bekomme noch den einen oder anderen Fehler seit dem Update...

    Ich werde mal versuchen die Datenströme zu analysieren und melde mich nochmals...

    Danke vielmals für den Hinweis

  • Also zwischenzeitlich konnte ich das Problem ein wenig eingrenzen mit Hilfe von about:memory

    Wenn ich memory reports erstelle und dann vergleiche, bekomme ich unter Web Content orphan-nodes, welche das Problem verursachen.

    Leider habe ich noch nicht herausgefunden, wo ich diese erzeuge...

    Kennt sich hier jemand damit aus?

  • bekomme ich unter Web Content orphan-nodes, welche das Problem verursachen.

    "orphan" heisst "verwaist" - verwaiste Nodes, sei es in die eine oder andere Richtung.

    Butter bei die Fische, bitte den Report, sonst wird es witzlos. Inzwischen sind auch drei Monate her, das Problem kann nicht wirklich wichtig sein.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Hier der Ausschnitt aus dem Vergleich mit dem Tool about:config und im Anhang noch den Teil des Vergleichs vom Web Content (falls hilfreich kann ich auch den ganzen Vergleich anhängen)

    Butter bei die Fische, bitte den Report, sonst wird es witzlos. Inzwischen sind auch drei Monate her, das Problem kann nicht wirklich wichtig sein.

    Leider habe ich noch einige andere Projekte, an denen ich arbeite und da ich nicht mehr weiter kam, habe ich das Problem eine Weile erfolgreich verdrängt :S aber wie immer holt es einen früher oder später ein...

    Aber ich verstehe es, wenn ihr nicht mehr helfen möchtet - ich danke euch dennoch sehr, für eure bisherigen Hilfestellungen...

    Allen einen guten Rutsch ins neue Jahr

  • Ich denke, das sollte sich konkret einer aus dem Team hier anschauen, nicht nur wegen der Sensibilität der Daten. Das Problem an sich ist nicht neu:

    https://www.google.com/search?q=firef…orphan-nodes%22

    zB https://bugzilla.mozilla.org/show_bug.cgi?id=1346556

    Es lässt sich aber auch nicht von Firefox her ableiten, sondern von dem, was Firefox nutzt, behaupte ich mal. Deswegen nochmal der Hinweis auf "verwaist", irgendwas, was nicht benutzt wurde, aber im Speicher liegt bzw. gehalten wird und nicht freigegeben wird.

    Bis v66 scheint Firefox ja alles richtig gemacht zu haben:

    https://www.mozilla.org/en-US/firefox/67.0/releasenotes/

    moz-regression als Hilfsmittel wurde ja schon genannt, schon Zeit dafür gehabt?

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!