Autor Thema: UPnP - Simple Service Discovery Protocol (SSDP) als Basismodul  (Gelesen 8268 mal)

Online KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5415
Antw:UPnP - Simple Service Discovery Protocol (SSDP) als Basismodul
« Antwort #75 am: 13 Januar 2022, 07:20:13 »
Hi Klaus,
das hab ich kaum anders erwartet.
Mittlerweile bin ich mir sicher, dass der Unterschied in unseren System viel "tiefer" liegt. Nämlich in den Perl-Paketen wie HTTP, SOAP.... Die lassen sich dann weder debuggen, noch werfen sie Logausgaben aus. Ich hab mir damals eigene Print-Ausgaben eingebaut, um "näher" an die freeze-Verursacher zu kommen. Es kann auch sein, dass ich dort etwas modifiziert habe. Sehe dort aber kein Eingreifen meinerseits. In meinen Aufzeichnungen habe ich nur gefunden, dass auch ich damals irgendwelche freeze-Problem hatte, die in einem System vorhanden waren, im anderen nicht.
Ich kann jetzt nur hingehen und erst einmal mein System(Rpi/buster) komplett auf einen "frischen" Auslieferungszustand bzgl. Perl(und perlupnp) zurücksetzen.

Was mich bei Deinen freezes wundert, ist das völlig undefinierte Zeitverhalten. Die freezes, die ich bisher im Zusammenhang mit perlupnp kenne, basieren immer auf irgendwelchen HTTP-Zugriffsproblemen, die wenigstens über "timeouts" regelmäßig waren. Z.B. immer 20s. Außerdem sind entsprechende Probleme immer in perlupnp mit carp/croak "abgefangen". Durch ein eval meinerseits lässt sich dann der Absturz verhindern und die Meldung loggen.

Mir scheint, dass Dein Problem ganz woanders liegt(sowas wie ne firewall ?). Du müsstest also mal ein bißchen mehr Statistik über das freeze-Verhalten machen, damit wir überhaupt mal eine Idee entwickeln können, wo es klemmt. Vielleicht auch mal den Datentraffic aufzeichnen(Wireshark/tcpdump) und analysieren.

Welche OS-Version und Releasestand hast Du ?

Grüße Markus

Edit: Gerade ist mir noch in den Sinn gekommen, dass der UPNPController seine Server ja auch nicht anders aufbaut. Im Gegensatz zu UPNPDevice ist es aber auf einigen Systemen problemlos. Läuft der UPNPController(mit freezemon) auf Deinem Testsystem problemlos ? Werden DLNA-devices automatisch angelegt, was dann bedeuten würde, dass auch der subscription process mit seinem Server problemlos läuft ?
« Letzte Änderung: 13 Januar 2022, 07:49:23 von KölnSolar »
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Offline klaus.schauer

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1234
Antw:UPnP - Simple Service Discovery Protocol (SSDP) als Basismodul
« Antwort #76 am: 14 Januar 2022, 08:38:18 »
Auf den Servern läuft Raspberry Pi OS Buster in der jeweils aktuellen Version, Raspi 1B mit 32 bit oder Raspi 4B mit 64 bit. Folgende Pakete sind installiert:

perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libdatetime-format-strptime-perl
liblist-moreutils-perl libxml-simple-perl libtext-csv-perl libarchive-extract-perl libcrypt-rijndael-perl
libcrypt-random-source-perl libstring-random-perl libdata-random-perl libyaml-perl sendemail libjson-perl
sqlite3 libdbd-sqlite3-perl libtext-diff-perl libdbi-perl libcgi-pm-perl libio-socket-multicast-perl libdigest-crc-perl
unattended-upgrades wiringpi libmodule-pluggable-perl git ser2net
libwww-perl libsoap-lite-perl libxml-parser-lite-perl

Der UPNPController auf dem Raspi 1B scheint problemlos zu laufen. Die UPnP-Devices im Netz werden alle gelistet.

Es gibt zwar viele freezemon-Meldungen, siehe Anlage. Das scheint mir aber auf das laufenden PIFACE-Modul zurückzuführen zu sein. Das startet im Sekundentakt mehrere Aufrufe auf Shell-Ebene über wiringpi zur Abfrage der GPIOs. Die durchschnittliche CPU-Last des Servers liegt bei ca. 20 % bis 25 %. Das Modul freezemon scheint auch zusätzlichen einen Anteil daran zu haben. Ein Raspi 1B ist nicht der schnellste.

Blockaden im Datentransfer sehe ich nicht. Die Geräte hängen alle an internen Switchen ohne Firewallfunktionen oder Portsperren.
« Letzte Änderung: 14 Januar 2022, 09:12:33 von klaus.schauer »

Online KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5415
Antw:UPnP - Simple Service Discovery Protocol (SSDP) als Basismodul
« Antwort #77 am: 14 Januar 2022, 10:25:04 »
[Freezemon] freezemon: possible freeze starting at 01:55:01, delay is 1.235 possibly caused by: tmr-PIFACE_GetUpdate(N/A) tmr-PIFACE_Watchdog(N/A)
2022.01.14 01:55:00.565 5: UPNPController: incoming message; will be processed by perlupnp handleOnce
2022.01.14 01:55:00.573 5: UPNPController: UPNPSocket-UPNP_Controller-1900, received ssdp event: was checked by discoverCallback for removed or added devices against pending search requests
2022.01.14 01:55:01.553 5: UPNPController: incoming message; will be processed by perlupnp handleOnce
2022.01.14 01:55:01.554 5: UPNPController: UPNPSocket-UPNP_Controller-1900, received ssdp event: was checked by discoverCallback for removed or added devices against pending search requests
2022.01.14 01:55:02.236 5: [Freezemon] freezemon: ----------- Starting Freeze handling at 2022.01.14 01:55:02.235 ---------------------
[Freezemon] freezemon: possible freeze starting at 01:55:01, delay is 1.235 possibly caused by: tmr-PIFACE_GetUpdate(N/A) tmr-PIFACE_Watchdog(N/A)
Ich glaube fast, dass Du richtig liegst wegen der Einschätzung zu piface. Ich weiß leider auch nicht, wie freezemon auf die Idee kommt , dass der freeze von piface sein könnte. Aber wenn man auf die Log-Zeilen guckt, sieht man immer wieder ein ähnliches Muster: es kommt ein ssdp-event rein, wird blitzschnell verarbeitet und mit der "was checked" Meldung wird das Modul beendet. Danach tritt dann der freeze auf. Im obigen Log-Extrakt gut zu erkennen, dass nach Beendigung des Moduls 1s später erst die nächste message zur Verarbeitung startet, ohne dass ein FHEM-Logging dazwischen liegt.
Nur für meine Neugierde: Weißt Du, ob diese piface-Zugriffe per BlockingCall laufen ?

Zitat
Die UPnP-Devices im Netz werden alle gelistet.
Und da sind auch devices mit DLNA dabei, die per autocreate angelegt und deren services subscribed wurden ?
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

 

decade-submarginal