FHEM - Entwicklung > FHEM Development

[erledigt] Race Condition bei der Icon-Ermittlung in FHEMWEB

(1/2) > >>

Dr. Boris Neubert:
Hallo,

auf zwei verschiedenen Instanzen von FHEM liefert


--- Code: ---get myFHEMWEB icon cloudy
--- Ende Code ---

dies


--- Code: ---/opt/fhem/www/images/default/weather/cloudy.png
--- Ende Code ---

bzw. das


--- Code: ---/opt/fhem/www/images/default/weather/cloudy.png
--- Ende Code ---

Richtig wäre das erste, weil FW_readIconsFrom() die Icons vor dem Einlesen alphabetisch sortiert und immer das erste ausgegeben wird. Anscheinend werden auf der zweiten Instanz die Icons früher und anders geladen, so dass diese Logik zum Sortieren nicht zum Zuge kommt.

Das führt dazu, dass die Weather-Icons auf der zweiten Instanz gemischt PNG- und SVG-Icons sind.

Wie kann ich die Icon-Ladereihenfolge debuggen?

Viele Grüße
Boris

Otto123:
Hi Boris,

ich finde den Unterschied nicht?  :-[

Gruß Otto

Dr. Boris Neubert:
Die zweite solltr .svg als Endung haben ::)

Thorsten Pferdekaemper:
Hi,

also bei mir gewinnt immer .svg, wenn die .svg-Dateien überhaupt vorhanden sind. Das ist auch kein Wunder:
Das hier wird für alle Dateien aus dem jeweiligen Verzeichnis ausgeführt:

--- Code: ---       my $tag = $filename;     # Add it without extension too
        $tag =~ s/\.[^.]*$//;
        $FW_icons{$dir}{$tag} = $filename;

--- Ende Code ---
Vorher werden die Dateien sortiert. Dadurch kommt cloudy.svg nach cloudy.png und überschreibt den Eintrag für cloudy.

Aber das gilt natürlich nur, wenn es die .svg-Dateien auch gibt. Ich habe auch zwei Instanzen auf meiner Entwicklungskiste. Eine hat die .svg-Dateien, die andere nicht. Dadurch beobachte ich dasselbe Verhalten wie Du.

Was hat das eigentlich mit "Race Condition" zu tun?

Gruß,
   Thorsten

rudolfkoenig:
Race Condition sollte es nicht geben, da FHEMWEB nicht multithreaded ist und _eigentlich_ alle notwendigen Variablen am Anfang der HTTP-Request-Behandlung gesetzt werden. Ich will damit nicht ausschliessen, dass es Probleme gibt, von mir aus auch Race Condition, ich brauche aber was Konkretes zum Nachstellen, wenn ich die Ursache finden soll.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln