Hallo,
ich habe gestern ein update gemacht. Alles lieft erstmal OK. Leider stürzt FHEM beim Aufruf vom rooms auf wo mehrere Plots sind. Einige Plots werden noch angezeigt, aber das Laden endet nie.
Im Log ist kein Hinweis zusehen.
Ein top zeigt zum Zeitpunkt viele fhem Einträge.
Mein System:
RPI3, logdb.
Ich konnte den Fehler schon etwas einkreisen.
Wenn ich aus dem Backup das alte 98_SVG.pm (# $Id: 98_SVG.pm 22703 2020-08-31 16:21:08Z rudolfkoenig $) einspiele, tritt der Fehler nicht auf.
Konnte allerdings nur 2 Änderungen von der alten zur neuen Version finden:
alt:
sub
SVG_embed()
{
return AttrVal($FW_wname, "plotEmbed", 0);
}
neu:
sub
SVG_embed()
{
return AttrVal($FW_wname, "plotEmbed", ($numCPUs>1 ? 2:0));
}
und in der sub SVG_doShowLog($$$$;$) alt:
my $msg = ($err ? $err : "No Logdevice >$d<");
neu:
my $msg = ($err ? $err : "No Logdevice /$d/");
Top bei normalem Betrieb:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21634 fhem 20 0 147316 133376 10064 S 5.0 13.4 1:35.08 perl
21762 fhem 20 0 96976 52152 5040 S 1.3 5.2 0:05.49 perl
32743 mysql 20 0 740732 169068 6684 S 1.0 16.9 5:04.87 mysqld
21645 root 20 0 10696 3292 2688 R 0.7 0.3 0:01.36 top
Top bei Aufruf von Room mit vielen Plots:
23308 fhem 20 0 147620 133756 10272 R 40.8 13.4 1:35.68 perl
22481 mysql 20 0 725324 101960 15780 S 25.2 10.2 0:02.72 mysqld
23798 fhem 21 1 146980 128724 5824 R 21.6 12.9 0:00.66 perl
23804 fhem 21 1 147556 129168 5688 R 16.7 12.9 0:00.51 perl
23800 fhem 21 1 147556 129168 5688 R 12.1 12.9 0:00.37 perl
23797 fhem 21 1 147556 129252 5688 R 11.1 13.0 0:00.34 perl
23802 fhem 21 1 147556 129168 5688 R 10.8 12.9 0:00.33 perl
23807 fhem 21 1 147556 129164 5688 R 5.6 12.9 0:00.17 perl
23806 fhem 21 1 147556 129168 5688 R 4.9 12.9 0:00.15 perl
61 root 20 0 0 0 0 S 2.6 0.0 11:33.12 kswapd0
23808 fhem 21 1 147400 126996 3528 R 2.3 12.7 0:00.07 perl
23455 fhem 20 0 96936 52312 5056 S 2.0 5.2 0:05.12 perl
23796 fhem 21 1 147400 126756 3288 S 1.6 12.7 0:00.05 perl
23761 root 20 0 10696 3200 2604 R 1.0 0.3 0:00.16 top
Habe nicht so richtig "Beschwerden" anderer hier im Forum gefunden. Habe nur ich das Problem?
Mein Gefühl ist, der Pi geht in 100% CPU und der Kernel schiesst dann einzelne Prozesse ab.
Gibt es etwas, was ich in der Docu übersehen habe?
Gruss
Ulf
Ich hatte das selbe Problem
siehe hier https://forum.fhem.de/index.php/topic,117854.msg1122775.html#msg1122775
Der Tip von Rudolf hat mir geholfen
Zitat von: rudolfkoenig am 17 Januar 2021, 22:06:55
Versuchs mal mit "attr WEB plotEmbed 0" und berichte.
Dank für die schnelle Antwort.
Leider bringt es bei mir keinen Erfolg. Komisch das ich deinen Eintrag vorher nicht gefunden habe.
ZitatLeider bringt es bei mir keinen Erfolg.
Dann ist die Ursache des Problems nicht gezeigte Aenderung.
Ich vermute eher, dass das Attribut nicht richtig gesetzt wurde.
Hallo Rudolf
Hier ein list WEB
Internals:
BYTES_READ 0
BYTES_WRITTEN 0
CONNECTS 2
CSRFTOKEN csrf_206915374852858
DEF 8083 global
FD 6
FUUID 5c483703-f33f-347b-a828-fea530fcbdee961f
NAME WEB
NR 10
NTFY_ORDER 50-WEB
PORT 8083
SSL 1
STATE Initialized
TYPE FHEMWEB
READINGS:
2021-01-24 18:28:38 state Initialized
Attributes:
HTTPS 1
JavaScripts pgm2/hm.js
editConfig 1
endPlotNow 1
fwcompress 0
hiddenroom Unsorted
menuEntries CodeImport,/fhem?detail=Import#
plotEmbed 0
roomIcons Sonos:sonos_play1 Arbeitszimmer:scene_workshop Terasse:scene_terrace Trockenraum:scene_laundry_room Spielzimmer:scene_childs_room Bad:scene_bathroom Eingang:scene_keyboard Heizung:sani_heating Kinderzimmer:scene_sleeping Kueche:scene_cooking Licht:icoLicht Schlafzimmer:scene_sleeping Wohnzimmer:scene_livingroom System:edit_settings Rollo:fts_shutter Treppe:scene_stairs Alarmanlage:status_locked Aussen:weather_sunset Flur:scene_hall Sicherheit:security Verbrauch:time_graph Anwesenheit:status_available G..stezimmer:scene_sleeping_alternat Fenster.und.T..ren:fts_shutter
styleData {
"f18": {
"Pinned.menu": "true",
"cols.bg": "FFFFE7",
"cols.fg": "000000",
"cols.link": "278727",
"cols.evenrow": "F8F8E0",
"cols.oddrow": "F0F0D8",
"cols.header": "E0E0C8",
"cols.menu": "D7FFFF",
"cols.sel": "A0FFFF",
"cols.inpBack": "FFFFFF",
"savePinChanges": true,
"hideLogo": false,
"hideInput": false,
"hidePin": false,
"wrapcolumns": false
}
}
stylesheetPrefix ios7
Das Attribut ist gesetzt.
Welche nicht gezeigte Änderung meinst du?
Fehlt mir vielleicht noch ein anderes Attribut?
Kannst Du bitte FHEM neu starten, und erneut pruefen?
Gemacht. (mit systemctl stop fhem && systemctl start fhem
)
Das Probelm besteht leider weiter.
ps ax | grep perl
1968 ? DN 0:02 perl fhem.pl fhem.cfg
1969 ? DN 0:02 perl fhem.pl fhem.cfg
1970 ? DN 0:02 perl fhem.pl fhem.cfg
1971 ? DN 0:02 perl fhem.pl fhem.cfg
1974 ? DN 0:02 perl fhem.pl fhem.cfg
1975 ? DN 0:02 perl fhem.pl fhem.cfg
1994 pts/0 S+ 0:00 grep perl
{AttrVal("WEB", "plotEmbed", 99)}
liefert 0.
{SVG_embed()}
liefert 2.
Verstehe ich nicht so richtig. Dachte, dass AttrVal den Attributwert liefert und wenn das Attribut nicht existiert den letzten Wert also ($numCPUs>1 ? 2:0).
Nach etwas code-Pruefen / nachdenken / testen:
- das Zurueckstellen von SVG.pm duerfte nicht reichen, FHEMBWEB sorgt ab der Umstellung der Voreinstellung auf plotEmbed=2 dafuer, dass die SVG-Berechnung die parallelen Prozesse fuer die Berechnung forkt. SVG rendert nur das Ergebnis anders (mit/ohne embed/svg tags)
- das Setzen dieses Attributes ist gleichwertig mit der alten Voreinstellung.
- ich habe das mit einer Testinstallation geprueft: per default wird geforkt, nach plotEmbed 0 nicht mehr.
{SVG_embed()} liefert 2.
SVG_embed liefert das plotEmbed Attribut fuer die zuletzt verwendete FHEMWEB Instanz.
Womoeglich gibt es mehrere FHEMWEB Instanzen?
Das war es. Ich hatte noch eine WEBphone Instanz. Dort habe ich auch das Attribut gesetzt und schon geht es. ;D
Also zusammengefasst es muss das Attribut in allen FHEMWEB Instanzen gesetzt werden.
Vielen Dank für die schnellen Antworten.