Linux – FireFox Wayland Patch killed WebGL

Mit einem Patch, ist alles weg. Die Entwickler von Firefox haben es geschafft, statt WebGL auf Wayland zu laufen zu bringen, haben sie mit einem anscheinend un/schlechtgetesteten Patch WebGL komplett abgeschossen.

WTF is WebGL

Was die WebGL Schnittstelle vom Firefox und anderen Browsern kann, könnt Ihr hier ansehen:

http://helloracer.com/webgl/

Nach nein, geht ja nicht mehr. Wurde ja durch einen schlechten Patch für Wayland deaktviert, statt es kompatibler zu machen 🙁

Wayland, nicht fertig, in aller Munde, alle nur am fluchen und das wohl zu recht. Das Teil macht nur Ärger an jeder Ecke,und dann hat man es noch gar nicht laufen 😀

Bei Redhat kann man sich z.b Glück mit einem Befehl ( rpm -q –changelog packagename) die Changelogs ansehen und beim Firefox findet man das hier:

… which makes GL layer compositor usable …

* Mi Mai 30 2018 Martin Stransky <stransky@redhat.com> – 60.0.1-5</stransky@redhat.com>
– Added workaround for mozbz#1464823 which makes GL layer compositor usable on Wayland.

* Di Mai 29 2018 Martin Stransky <stransky@redhat.com> – 60.0.1-4
– Added fix for mozbz#1464808 – Set default D&D action to move on Wayland.

* Fr Mai 25 2018 Martin Stransky <stransky@redhat.com> – 60.0.1-3
– Added fix for mozbz#1436242 (rhbz#1577277) – Firefox IPC crashes.
– Added fix for mozbz#1462640 – Sandbox disables eglGetDisplay() call on Wayland/EGL backend.

* Fr Mai 25 2018 Martin Stransky <stransky@redhat.com> – 60.0.1-2
– Enable Wayland backend.

* Mi Mai 23 2018 Jan Horak <jhorak@redhat.com> – 60.0.1-1</jhorak@redhat.com>
– Update to 60.0.1

Als ich den Hohn in den Patchnodes gelesen habe, wäre ich fast vom Stuhl gefallen.

which makes GL layer compositor usable on Wayland“ und schaltet ihn für alle anderen ab 🙁 WOW.. Echt gut getestet Mozilla.

HOW TO FIX

Die Auswirkungen von dem Patch kann man teilweise beheben, so daß wenigstens etwas noch funktioniert, nämlich die 3D Demo oben 😉

Dazu geht man in die „about:config“ und ändert bei „webgl.force-enabled“ den Wert von False auf True.

Und wer alles wieder sehen will, der ändert noch „webgl.webgl2-compat-mode“ auf  True.

Damit kann man dann auch wieder „https://map2fly.flynex.de/“ sehen.

Update (14:29):

… oder, wie uns grade berichtet wird, in 60.0.2 soll der Bug behoben sein.

… wurde so ebend bestätigt. Wer das Update schon installieren will, bevor es im Stable verfügbar ist, hier der Link:

https://koji.fedoraproject.org/koji/buildinfo?buildID=1090754

Könnt Ihr Euch aber sparen, ich habs grade als stable ins repo gepusht. Kommt also die nächsten Stunden bei Euch so oder so an 😉

PHP-CGI verbraucht zuviel Speicher

Dieser Beitrag ist aus der Kategorie:

„Was kann da schon schief gehen“

Speicher ist billig, aber doch endlich und nicht beliebig nachrüstbar.  Es kann also Situationen geben, wo man Speicher einsparen muß, weil andere der irrigen Meinung, waren, das mit dem Speicherverbrauch  wäre kein Problem.

Aber der Reihe nach:  Was ist überhaupt das Problem ?

PHP als CGI ausgeführt, verbraucht pro Start > 400 MB Speicher fürs Nichtstun.

Beispiel:  „php-cgi -a“ startet PHP ohne irgend was zu machen.

In einer zweiten Konsole läßt man sich mit pmap anzeigen, wer in dem Prozess was an Speicher belegt:

pmap {pid of process}

Beispielausgabe ( gekürzt : Warum kommt später )

[root@xxx]# pmap 5408
5408:   php-cgi -a
0000560d00b44000   3724K r-x– php-cgi
0000560d010e6000    536K r—- php-cgi
0000560d0116c000     16K rw— php-cgi

00007fce773f8000     28K r-x– libcrypt-2.23.so
00007fce773ff000   2044K —– libcrypt-2.23.so
00007fce775fe000      4K r—- libcrypt-2.23.so
00007fce775ff000      4K rw— libcrypt-2.23.so

total           420372K

Genau, 410 MB und nicht eine Anweisung ausgeführt. 3.7 MB gehen für den PHP-Interpretercode selbst drauf, ok. 2 MB gehen alleine für die libcrypt drauf.

Und jetzt der Grund wieso die Ausgabe gekürzt ist: PHP benutzt 75 Libs => ~ 160 MB Speicherverbrauch … bei jedem Script!

Bei der Analyse ist aber aufgefallen, daß auch eine Locale eingebunden wird:

-rw-r–r– 1 root root 110562112 22. Dez 12:01 /usr/lib/locale/locale-archive
-rw-r–r– 1 root root         0 22. Dez 12:01 /usr/lib/locale/locale-archive.tmpl

Auch bekannt als 107 MB und diese Datei wird in jeden PHP Prozess geladen,  der läuft. Keine Gnade.

Locale  – was sind das ?

„Locals“ sind keine Eingeborenen, sondern nur die Informationen über jene, also Zahlensysteme, Schreibrichtung, Datumsformat, Gewichte, Längen usw. . Wer mal sehen will, welche auf seinem Linux installiert sind, gibt das ein : locale -a

Da kommen Sachen von Sprachen, wo man nicht mal sagen kann, wo die passenden Länder sind 😉

Irgendwann hat Red Hat mal entschieden, daß die einfach alle Sprachen des Planeten ausliefern, weil dann der User nicht mehr machen muß. Stimmt.

Auf einem Desktopsystem ok. Aber auf einem Server ist das nicht ok und deswegen muß das auf ein gesundes Maß gedrückt werden. Das macht man mit  : /usr/sbin/build-locale-archive -v -l „de:en:ru:jp“

„Oh… geht ja gar nicht“ ????

Doch geht, aber nur mit Trick Siebzehn aus der „Erschiesst den Trottel Ecke“.

Die obige Locale-Archiv-Datei kommt mit dem Paket „glibc-all-langpacks“ auf den Server. Damit kommt aber auch ein TEMPLATE File mit, aus dem man sich genau das Archiv selbst bauen kann, wenn man eben nicht alles haben will.

Ihr habt’s erfaßt, das wäre zu einfach gewesen 🙁

Die Templatedatei ist nämlich LEER und damit nicht zu gebrauchen. Ihr Fragt Euch jetzt : „Wie bekommt man so ein Template?“ hmm.. Tja.. aus dem Repo jedenfalls nicht und doch, bekommt man. Jetzt wird es lustig, wir kopieren das vorhandene Archiv als Template für sich selbst ! Ja, richtig, mit der Faust durchs Auge: In your Face Red Hat!

Also eingegeben:

cp locale-archive locale-archive.tmpl
/usr/sbin/build-locale-archive -v -l „de:en:ru:jp“
locale -a

und schon ist das File keine 107 MB  mehr sondern nur noch 7 MB und auch das halte ich für extrem viel Schrott für 4 Sprachen. Aber jetzt lädt das php nur noch 7 MB rein. Das macht in der Endabrechnung dann 25% weniger RAM Verbrauch.

Als nächstes muß man rausfinden, wieso die Libs jeweils 2 MB verbrennen, wenn die nur 70k groß sind. Aber das ist eine andere Geschichte aus dem |-: La-La-La-Land 😐 .