Untegelmäßiger RegaNeustart nach Update

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

It-noob
Beiträge: 65
Registriert: 17.08.2017, 16:42
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Untegelmäßiger RegaNeustart nach Update

Beitrag von It-noob » 25.10.2020, 10:58

jmaus hat geschrieben:
25.10.2020, 08:45
Und was genau ist denn an Zombie Prozessen schlecht? Nichts. ...
soweit gebe ich dir da recht. Leider räumt bei mir nichts die Zombies auf und wie oben geschieben hatte kommt / kam es nach 3 Tagen +X Stunden zu einem Rega Neustart. ... An der erwähnten Sonoff Steckdose hängen ein paar Neopixel LED die verschiedene Zustände signaliseren, d.h. da kommen schnell ein paar hunderte Zombies pro Tag zusammen. Die anderen Stellen im Forum auf der Suche nach weiteren debugging Ideen kenne ich inzwische gefühlt alle, aber selbst mit einem kill bekomme ich die prozesse nicht beendet. Das Problem wird vmtl. auch nicht neu sein, ich hatte nur angefangen alle Scirpte umzustellen, d.h. ich weiß nicht wann das Problem wirklich begonnen hat und wo ich sonst noch suchen soll.
bei >80 Geräten will ich auch nicht beginnen alles neu Aufzusetzen, abgsehen davon bin ich sicher dass es kein Raspberrymatic Problem ist, ich hab nur den Thread fortgeführt.

Benutzeravatar
jmaus
Beiträge: 7198
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 179 Mal
Danksagung erhalten: 724 Mal
Kontaktdaten:

Re: Untegelmäßiger RegaNeustart nach Update

Beitrag von jmaus » 25.10.2020, 11:29

It-noob hat geschrieben:
25.10.2020, 10:58
jmaus hat geschrieben:
25.10.2020, 08:45
Und was genau ist denn an Zombie Prozessen schlecht? Nichts. ...
soweit gebe ich dir da recht. Leider räumt bei mir nichts die Zombies auf und wie oben geschieben hatte kommt / kam es nach 3 Tagen +X Stunden zu einem Rega Neustart. ... An der erwähnten Sonoff Steckdose hängen ein paar Neopixel LED die verschiedene Zustände signaliseren, d.h. da kommen schnell ein paar hunderte Zombies pro Tag zusammen.
Dann zeig mal bitte die Prozessliste mit den Zombies die angeblich dein System in die Knie zwingen. Die temporären Zombies die vom monit watchdog erzeugt werden sollten ohne probleme regelmäßig aufgeräumt werden. An denen kann sowas nicht liegen. Es muss also an deinen system.Exec() aufrufen hängen das hier zombies erzeugt werden die niemals aufgeräumt werden. Daher bitte mal butter bei de Fische und Beispiele mit Analyseausgaben (Prozessliste, etc. zeigen).
It-noob hat geschrieben:
25.10.2020, 10:58
Die anderen Stellen im Forum auf der Suche nach weiteren debugging Ideen kenne ich inzwische gefühlt alle, aber selbst mit einem kill bekomme ich die prozesse nicht beendet. Das Problem wird vmtl. auch nicht neu sein, ich hatte nur angefangen alle Scirpte umzustellen, d.h. ich weiß nicht wann das Problem wirklich begonnen hat und wo ich sonst noch suchen soll.
Also Zombie prozesse kann und muss man nicht beenden, denn diese sind per se bereits beendet und verbrauchen ausser eine prozess ID keinerlei Ressourcen, weder CPU noch signifikant viel RAM. Also selbst einige hunder zombies sollten kein Problem darstellen für irgendetwas im System. Und ich bleibe dabei, wenn man seine system.Exec() aufrufe ordentlich ausstattet dann sollte es zu keinerlei Zombie Prozesse kommen die niemals aufgeräumt werden.
RaspberryMatic 3.57.5.20210424 @ ESXi, ~190 Hm-RF/HmIP-RF/HmIPW Geräte, ioBroker – RaspberryMatic GitHub Projekt / Twitter

It-noob
Beiträge: 65
Registriert: 17.08.2017, 16:42
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Untegelmäßiger RegaNeustart nach Update

Beitrag von It-noob » 26.10.2020, 20:03

Hi,

ich wollte hieraus kein Battle machen oder system.exec in Frage stellen. Du hast insofern recht, als dass die Monit Prozesse regelmäßig beendet werden. Also hat Monit schon mal kein Problem. Das die ReGa Zombies durch meine system.exec Aufrufe kommen sehe ich als bestätigt. Leider komme ich nicht dahinter "warum" und was ich noch probieren kann.

PID 23736, 23781, 23795, 23807, 30233 werden auch morgen noch da sein, den Nachweis kann ich dann aber leider erst morgen bringen. ... Und gern nochmal, mir geht es hier absolut nicht um "Recht" haben, der Fehler ist Problem genug ;)
Erzeugt habe ich die Zombies mit folgendem Programm (wobei es keine Rolle spielt, welche URL ich aufrufe und wo ich das "timeout" platziere:

Code: Alles auswählen

string url="http://192.168.178.214";
system.Exec("timeout 3 wget --timeout=2 -q -O /dev/null/ '" # url # "' &");
Addons habe ich:
Hue Addon: v3.1.0
CUXd: 3.4.4
XML API 1.20
Sonos Player 2.7
NeoServer 3.5.6

Parallel greift noch 1x Node-Red Daten ab auf einem zweiten Raspbbery, ioBroker hab ich schon deaktiviert. XML API ist für TinyMatic installiert (welches aber seit dem Update gestern nicht verwenet wurde), Sonos wurde nicht genutzt, ein LAN GW ist noch aktiv ... Alles nichts wo ich einen Zusammenhang suchen würde. CUXd ist unauffällig, Backups auf dem USB Stick erfolgen klaglos.

Code: Alles auswählen

root@CCU2:/media/usb1/backup# top -b -n 1
Mem: 376352K used, 615448K free, 6568K shrd, 14156K buff, 180580K cached
CPU:   0% usr   2% sys   0% nic  97% idle   0% io   0% irq   0% sirq
Load average: 0.04 0.02 0.00 2/251 23868
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
23868 22514 root     R     3076   0%   2% top -b -n 1
  871     1 root     S     258m  27%   0% java -Xmx128m -Dos.arch=armv7l -Dlog4j.configuration=file:///etc/config/log4j.xml -Dfile.encoding=ISO-8859-1 -Dgnu.io.rxtx.SerialPorts=/dev/mmd_hmip -jar /opt/HMServer/HMIPServer.jar /var/etc/crRFD.conf /var/etc/HMServer.conf
 1012     1 root     S    42540   4%   0% /bin/ReGaHss -f /etc/rega.conf -l 2
  445     1 root     S    41860   4%   0% /usr/sbin/rngd -q
  785     1 root     S    29200   3%   0% /bin/rfd -f /var/etc/rfd.conf -l 5
 1095     1 root     S    15120   2%   0% /usr/bin/monit -Ic /etc/monitrc
  265     1 root     S    14680   1%   0% /sbin/udevd -d
23862   265 root     S    14680   1%   0% /sbin/udevd -d
  435     1 root     S    13308   1%   0% /usr/sbin/irqbalance
  751     1 root     S<   12224   1%   0% /bin/multimacd -f /var/etc/multimacd.conf -l 5
  619   618 root     S     9440   1%   0% /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -D
22511   636 root     S     6248   1%   0% sshd: root@pts/0
  636     1 root     S     6248   1%   0% sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups
 1066     1 root     S     5680   1%   0% {hued.tcl} /bin/tclsh /usr/local/addons/hue/hued.tcl daemon
  238     1 root     S     4660   0%   0% /bin/hss_led -l 6
  611     1 root     S     4344   0%   0% /bin/eq3configd
  628     1 root     S     4160   0%   0% /bin/ssdpd
 1081     1 root     S     3204   0%   0% /usr/sbin/crond -f -l 9
22514 22511 root     S     3204   0%   0% -sh
  694     1 root     S     3168   0%   0% /usr/local/addons/cuxd/cuxd
   98     1 root     S     3124   0%   0% /usr/bin/psplash -n
    1     0 root     S     3076   0%   0% init
  495     1 root     S     3076   0%   0% /sbin/syslogd -n -m 0 -s 4096 -b 1 -D
  498     1 root     S     3076   0%   0% /sbin/klogd -n
 1096     1 root     S     3076   0%   0% init
  104     1 root     S     2944   0%   0% /sbin/watchdog -T 300 -t 5 /dev/watchdog
  458     1 dbus     S     2884   0%   0% dbus-daemon --system
  585     1 root     S     2604   0%   0% /usr/sbin/chronyd
  571     1 root     S     1840   0%   0% /usr/sbin/ifplugd -i eth0 -fI -u0 -d10
  575     1 root     S     1840   0%   0% /usr/sbin/ifplugd -i wlan0 -MwI -u5 -d5
  618     1 root     S     1596   0%   0% /usr/sbin/lighttpd-angel -f /etc/lighttpd/lighttpd.conf -D
   10     2 root     IW       0   0%   0% [rcu_preempt]
   71     2 root     IW<      0   0%   0% [kworker/0:1H-mm]
    9     2 root     SW       0   0%   0% [ksoftirqd/0]
   76     2 root     IW<      0   0%   0% [kworker/3:1H-kb]
   82     2 root     IW<      0   0%   0% [kworker/2:1H-kb]
   74     2 root     SW       0   0%   0% [usb-storage]
   83     2 root     IW<      0   0%   0% [kworker/1:1H-kb]
   25     2 root     SW       0   0%   0% [ksoftirqd/3]
21157     2 root     IW       0   0%   0% [kworker/u8:0-ev]
   20     2 root     SW       0   0%   0% [ksoftirqd/2]
   15     2 root     SW       0   0%   0% [ksoftirqd/1]
   64     2 root     SW<      0   0%   0% [vchiq-slot/0]
19196     2 root     IW       0   0%   0% [kworker/0:1-eve]
   75     2 root     IW       0   0%   0% [kworker/u8:1-ev]
   11     2 root     SW       0   0%   0% [migration/0]
20914     2 root     IW       0   0%   0% [kworker/0:0-mm_]
   14     2 root     SW       0   0%   0% [migration/1]
   19     2 root     SW       0   0%   0% [migration/2]
   24     2 root     SW       0   0%   0% [migration/3]
21833     2 root     IW       0   0%   0% [kworker/3:1-eve]
   93     2 root     SW       0   0%   0% [jbd2/mmcblk0p3-]
    2     0 root     SW       0   0%   0% [kthreadd]
22625     2 root     IW       0   0%   0% [kworker/0:2-eve]
   34     2 root     SW       0   0%   0% [khungtaskd]
22746     2 root     IW       0   0%   0% [kworker/1:0-eve]
21217     2 root     IW       0   0%   0% [kworker/1:1-eve]
22623     2 root     IW       0   0%   0% [kworker/2:0-eve]
16610     2 root     IW       0   0%   0% [kworker/2:1-eve]
23229     2 root     IW       0   0%   0% [kworker/3:0-eve]
23309     2 root     IW       0   0%   0% [kworker/0:3-eve]
22528     2 root     IW       0   0%   0% [kworker/3:2-mm_]
23303     2 root     IW       0   0%   0% [kworker/2:2-eve]
23854  1081 root     Z        0   0%   0% [updateDCVars.tc]
   65     2 root     SW<      0   0%   0% [vchiq-recy/0]
23736  1012 root     Z        0   0%   0% [ReGaHss]
23781  1012 root     Z        0   0%   0% [ReGaHss]
23795  1012 root     Z        0   0%   0% [ReGaHss]
23807  1012 root     Z        0   0%   0% [ReGaHss]
30233  1012 root     Z        0   0%   0% [ReGaHss]
    3     2 root     IW<      0   0%   0% [rcu_gp]
    4     2 root     IW<      0   0%   0% [rcu_par_gp]
    8     2 root     IW<      0   0%   0% [mm_percpu_wq]
   12     2 root     SW       0   0%   0% [cpuhp/0]
   13     2 root     SW       0   0%   0% [cpuhp/1]
   18     2 root     SW       0   0%   0% [cpuhp/2]
   23     2 root     SW       0   0%   0% [cpuhp/3]
   28     2 root     SW       0   0%   0% [kdevtmpfs]
   29     2 root     IW<      0   0%   0% [netns]
   30     2 root     SW       0   0%   0% [rcu_tasks_kthre]
   35     2 root     SW       0   0%   0% [oom_reaper]
   36     2 root     IW<      0   0%   0% [writeback]
   37     2 root     SW       0   0%   0% [kcompactd0]
   38     2 root     SWN      0   0%   0% [ksmd]
   49     2 root     IW<      0   0%   0% [kblockd]
   50     2 root     IW<      0   0%   0% [blkcg_punt_bio]
   51     2 root     SW       0   0%   0% [watchdogd]
   53     2 root     IW<      0   0%   0% [rpciod]
   54     2 root     IW<      0   0%   0% [kworker/u9:0]
   55     2 root     IW<      0   0%   0% [xprtiod]
   56     2 root     SW       0   0%   0% [kswapd0]
   57     2 root     IW<      0   0%   0% [nfsiod]
   58     2 root     IW<      0   0%   0% [kthrotld]
   59     2 root     IW<      0   0%   0% [iscsi_eh]
   60     2 root     IW<      0   0%   0% [dwc_otg]
   61     2 root     IW<      0   0%   0% [DWC Notificatio]
   62     2 root     IW<      0   0%   0% [uas]
   66     2 root     SW<      0   0%   0% [vchiq-sync/0]
   67     2 root     IW<      0   0%   0% [kstrp]
   70     2 root     IW<      0   0%   0% [mmc_complete]
   72     2 root     SW       0   0%   0% [scsi_eh_0]
   73     2 root     IW<      0   0%   0% [scsi_tmf_0]
   77     2 root     SW       0   0%   0% [jbd2/mmcblk0p2-]
   78     2 root     IW<      0   0%   0% [ext4-rsv-conver]
   94     2 root     IW<      0   0%   0% [ext4-rsv-conver]
  122     2 root     SW       0   0%   0% [vchiq-keep/0]
  287     2 root     SW       0   0%   0% [spi0]
  311     2 root     IW<      0   0%   0% [cfg80211]
  313     2 root     IW<      0   0%   0% [brcmf_wq/mmc1:0]
  314     2 root     SW       0   0%   0% [brcmf_wdog/mmc1]
  518     2 root     IW<      0   0%   0% [ipv6_addrconf]
21176     2 root     IW<      0   0%   0% [kworker/2:0H-kb]
21899     2 root     IW<      0   0%   0% [kworker/1:2H]
21975     2 root     IW<      0   0%   0% [kworker/0:0H]
22490     2 root     IW<      0   0%   0% [kworker/3:0H]
23470     2 root     IW       0   0%   0% [kworker/1:2-mm_]
23823  1095 root     Z        0   0%   0% [test]
23824  1095 root     Z        0   0%   0% [sh]
23825  1095 root     Z        0   0%   0% [grep]
23826  1095 root     Z        0   0%   0% [test]
23830  1095 root     Z        0   0%   0% [test]
23831  1095 root     Z        0   0%   0% [test]
23832  1095 root     Z        0   0%   0% [test]
23833  1095 root     Z        0   0%   0% [sh]
23834  1095 root     Z        0   0%   0% [test]
23849  1095 root     Z        0   0%   0% [test]
23850  1095 root     Z        0   0%   0% [test]
23851  1095 root     Z        0   0%   0% [test]
23853  1095 root     Z        0   0%   0% [test]
23858  1095 root     Z        0   0%   0% [sh]
23864  1095 root     Z        0   0%   0% [test]
23865  1095 root     Z        0   0%   0% [test]
23866  1095 root     Z        0   0%   0% [test]
23867  1095 root     Z        0   0%   0% [grep]
etwas später

Code: Alles auswählen

root@CCU2:/# ps -o pid,ppid,etime,stat,comm,args
PID   PPID  ELAPSED STAT COMMAND          COMMAND
    1     0  1d13   S    init             init
    2     0  1d13   SW   kthreadd         [kthreadd]
    3     2  1d13   IW<  rcu_gp           [rcu_gp]
    4     2  1d13   IW<  rcu_par_gp       [rcu_par_gp]
    8     2  1d13   IW<  mm_percpu_wq     [mm_percpu_wq]
    9     2  1d13   SW   ksoftirqd/0      [ksoftirqd/0]
   10     2  1d13   IW   rcu_preempt      [rcu_preempt]
   11     2  1d13   SW   migration/0      [migration/0]
   12     2  1d13   SW   cpuhp/0          [cpuhp/0]
   13     2  1d13   SW   cpuhp/1          [cpuhp/1]
   14     2  1d13   SW   migration/1      [migration/1]
   15     2  1d13   SW   ksoftirqd/1      [ksoftirqd/1]
   18     2  1d13   SW   cpuhp/2          [cpuhp/2]
   19     2  1d13   SW   migration/2      [migration/2]
   20     2  1d13   SW   ksoftirqd/2      [ksoftirqd/2]
   23     2  1d13   SW   cpuhp/3          [cpuhp/3]
   24     2  1d13   SW   migration/3      [migration/3]
   25     2  1d13   SW   ksoftirqd/3      [ksoftirqd/3]
   28     2  1d13   SW   kdevtmpfs        [kdevtmpfs]
   29     2  1d13   IW<  netns            [netns]
   30     2  1d13   SW   rcu_tasks_kthre  [rcu_tasks_kthre]
   34     2  1d13   SW   khungtaskd       [khungtaskd]
   35     2  1d13   SW   oom_reaper       [oom_reaper]
   36     2  1d13   IW<  writeback        [writeback]
   37     2  1d13   SW   kcompactd0       [kcompactd0]
   38     2  1d13   SWN  ksmd             [ksmd]
   49     2  1d13   IW<  kblockd          [kblockd]
   50     2  1d13   IW<  blkcg_punt_bio   [blkcg_punt_bio]
   51     2  1d13   SW   watchdogd        [watchdogd]
   53     2  1d13   IW<  rpciod           [rpciod]
   54     2  1d13   IW<  kworker/u9:0     [kworker/u9:0]
   55     2  1d13   IW<  xprtiod          [xprtiod]
   56     2  1d13   SW   kswapd0          [kswapd0]
   57     2  1d13   IW<  nfsiod           [nfsiod]
   58     2  1d13   IW<  kthrotld         [kthrotld]
   59     2  1d13   IW<  iscsi_eh         [iscsi_eh]
   60     2  1d13   IW<  dwc_otg          [dwc_otg]
   61     2  1d13   IW<  DWC Notificatio  [DWC Notificatio]
   62     2  1d13   IW<  uas              [uas]
   64     2  1d13   SW<  vchiq-slot/0     [vchiq-slot/0]
   65     2  1d13   SW<  vchiq-recy/0     [vchiq-recy/0]
   66     2  1d13   SW<  vchiq-sync/0     [vchiq-sync/0]
   67     2  1d13   IW<  kstrp            [kstrp]
   70     2  1d13   IW<  mmc_complete     [mmc_complete]
   71     2  1d13   IW<  kworker/0:1H-mm  [kworker/0:1H-mm]
   72     2  1d13   SW   scsi_eh_0        [scsi_eh_0]
   73     2  1d13   IW<  scsi_tmf_0       [scsi_tmf_0]
   74     2  1d13   SW   usb-storage      [usb-storage]
   76     2  1d13   IW<  kworker/3:1H-kb  [kworker/3:1H-kb]
   77     2  1d13   SW   jbd2/mmcblk0p2-  [jbd2/mmcblk0p2-]
   78     2  1d13   IW<  ext4-rsv-conver  [ext4-rsv-conver]
   82     2  1d13   IW<  kworker/2:1H-kb  [kworker/2:1H-kb]
   83     2  1d13   IW<  kworker/1:1H-kb  [kworker/1:1H-kb]
   93     2  1d13   SW   jbd2/mmcblk0p3-  [jbd2/mmcblk0p3-]
   94     2  1d13   IW<  ext4-rsv-conver  [ext4-rsv-conver]
   98     1  1d13   S    psplash          /usr/bin/psplash -n
  104     1  1d13   S    watchdog         /sbin/watchdog -T 300 -t 5 /dev/watchdog
  122     2  1d13   SW   vchiq-keep/0     [vchiq-keep/0]
  238     1  1d13   S    hss_led          /bin/hss_led -l 6
  265     1  1d13   S    udevd            /sbin/udevd -d
  287     2  1d13   SW   spi0             [spi0]
  311     2  1d13   IW<  cfg80211         [cfg80211]
  313     2  1d13   IW<  brcmf_wq/mmc1:0  [brcmf_wq/mmc1:0]
  314     2  1d13   SW   brcmf_wdog/mmc1  [brcmf_wdog/mmc1]
  435     1  1d13   S    irqbalance       /usr/sbin/irqbalance
  445     1  1d13   S    rngd             /usr/sbin/rngd -q
  458     1  1d13   S    dbus-daemon      dbus-daemon --system
  495     1  1d13   S    syslogd          /sbin/syslogd -n -m 0 -s 4096 -b 1 -D
  498     1  1d13   S    klogd            /sbin/klogd -n
  518     2  1d13   IW<  ipv6_addrconf    [ipv6_addrconf]
  571     1  1d13   S    ifplugd          /usr/sbin/ifplugd -i eth0 -fI -u0 -d10
  575     1  1d13   S    ifplugd          /usr/sbin/ifplugd -i wlan0 -MwI -u5 -d5
  585     1  1d13   S    chronyd          /usr/sbin/chronyd
  611     1  1d13   S    eq3configd       /bin/eq3configd
  618     1  1d13   S    lighttpd-angel   /usr/sbin/lighttpd-angel -f /etc/lighttpd/lighttpd.conf -D
  619   618  1d13   S    lighttpd         /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -D
  628     1  1d13   S    ssdpd            /bin/ssdpd
  636     1  1d13   S    sshd             sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups
  694     1  1d13   S    cuxd             /usr/local/addons/cuxd/cuxd
  751     1  1d13   S<   multimacd        /bin/multimacd -f /var/etc/multimacd.conf -l 5
  785     1  1d13   S    rfd              /bin/rfd -f /var/etc/rfd.conf -l 5
  871     1  1d13   S    java             java -Xmx128m -Dos.arch=armv7l -Dlog4j.configuration=file:///etc/config/log4j
 1012     1  1d13   S    ReGaHss          /bin/ReGaHss -f /etc/rega.conf -l 2
 1066     1  1d13   S    hued.tcl         {hued.tcl} /bin/tclsh /usr/local/addons/hue/hued.tcl daemon
 1081     1  1d13   S    crond            /usr/sbin/crond -f -l 9
 1095     1  1d13   S    monit            /usr/bin/monit -Ic /etc/monitrc
 1096     1  1d13   S    init             init
21176     2 20h33   IW<  kworker/2:0H-kb  [kworker/2:0H-kb]
21899     2  1h08   IW<  kworker/1:2H     [kworker/1:2H]
21975     2  1h08   IW<  kworker/0:0H     [kworker/0:0H]
22490     2  1d01   IW<  kworker/3:0H     [kworker/3:0H]
22511   636  1h03   R    sshd             sshd: root@pts/0
22514 22511  1h03   S    sh               -sh
23736  1012 20h11   Z    ReGaHss          [ReGaHss]
23781  1012 54:36   Z    ReGaHss          [ReGaHss]
23795  1012 54:27   Z    ReGaHss          [ReGaHss]
23807  1012 54:22   Z    ReGaHss          [ReGaHss]
25352  1012 43:04   Z    ReGaHss          [ReGaHss]
25368  1012 43:00   Z    ReGaHss          [ReGaHss]
25511  1012 42:19   Z    ReGaHss          [ReGaHss]
25587  1012 41:48   Z    ReGaHss          [ReGaHss]
25640  1012 41:30   Z    ReGaHss          [ReGaHss]
25857     2 40:07   IW   kworker/u8:1-ev  [kworker/u8:1-ev]
26196     2 37:40   IW   kworker/0:3-mm_  [kworker/0:3-mm_]
26879     2 32:41   IW   kworker/3:0-eve  [kworker/3:0-eve]
28260     2 22:33   IW   kworker/0:2-eve  [kworker/0:2-eve]
29057     2 16:38   IW   kworker/2:0-eve  [kworker/2:0-eve]
29656     2 12:01   IW   kworker/1:2-mm_  [kworker/1:2-mm_]
29917     2 10:06   IW   kworker/u8:2-ev  [kworker/u8:2-ev]
29941     2  9:56   IW   kworker/0:4-eve  [kworker/0:4-eve]
30233  1012  1d00   Z    ReGaHss          [ReGaHss]
30402     2  6:49   IW   kworker/3:2-eve  [kworker/3:2-eve]
30422     2  6:38   IW   kworker/1:1-eve  [kworker/1:1-eve]
30496     2  6:11   IW   kworker/2:1-eve  [kworker/2:1-eve]
30718     2  4:53   IW   kworker/0:0-mm_  [kworker/0:0-mm_]
31146     2  1:38   IW   kworker/3:1-eve  [kworker/3:1-eve]
31225     2  1:05   IW   kworker/2:2-eve  [kworker/2:2-eve]
31323  1095  0:17   Z    sh               [sh]
31327  1095  0:15   Z    test             [test]
31328  1095  0:15   Z    test             [test]
31329  1095  0:15   Z    test             [test]
31330  1095  0:15   Z    grep             [grep]
31331  1095  0:14   Z    test             [test]
31332  1095  0:14   Z    sh               [sh]
31333  1095  0:14   Z    grep             [grep]
31334  1095  0:14   Z    test             [test]
31338  1095  0:14   Z    test             [test]
31339  1095  0:14   Z    test             [test]
31340  1095  0:14   Z    test             [test]
31341  1095  0:14   Z    sh               [sh]
31342  1095  0:14   Z    test             [test]
31349   265  0:06   S    udevd            /sbin/udevd -d
31350  1081  0:05   Z    updateDCVars.tc  [updateDCVars.tc]
31352  1095  0:01   Z    test             [test]
31353  1095  0:01   Z    test             [test]
31354  1095  0:01   Z    test             [test]
31356  1095  0:01   Z    test             [test]
31357 22514  0:01   R    ps               ps -o pid,ppid,etime,stat,comm,args
ud nochmal später:

Code: Alles auswählen

ps -o pid,ppid,etime,stat,comm,args | grep Z
23736  1012 20h16   Z    ReGaHss          [ReGaHss]
23781  1012  1h00   Z    ReGaHss          [ReGaHss]
23795  1012  1h00   Z    ReGaHss          [ReGaHss]
23807  1012  1h00   Z    ReGaHss          [ReGaHss]
25352  1012 48:54   Z    ReGaHss          [ReGaHss]
25368  1012 48:50   Z    ReGaHss          [ReGaHss]
25511  1012 48:09   Z    ReGaHss          [ReGaHss]
25587  1012 47:38   Z    ReGaHss          [ReGaHss]
25640  1012 47:20   Z    ReGaHss          [ReGaHss]
30233  1012  1d00   Z    ReGaHss          [ReGaHss]
32109  1095  0:11   Z    test             [test]
32110  1095  0:11   Z    test             [test]
32111  1095  0:11   Z    test             [test]
32113  1095  0:11   Z    test             [test]
32114  1095  0:08   Z    sh               [sh]
32119  1095  0:07   Z    test             [test]
32120  1095  0:07   Z    test             [test]
32121  1095  0:07   Z    test             [test]
32122  1095  0:07   Z    grep             [grep]
32124  1095  0:06   Z    test             [test]
32125  1095  0:06   Z    sh               [sh]
32126  1095  0:06   Z    grep             [grep]
32127  1095  0:06   Z    test             [test]
32131  1095  0:06   Z    test             [test]
32132  1095  0:06   Z    test             [test]
32133  1095  0:06   Z    test             [test]
32134  1095  0:06   Z    sh               [sh]
32135  1095  0:06   Z    test             [test]
32146 22514  0:01   R    grep             grep Z

Benutzeravatar
jmaus
Beiträge: 7198
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 179 Mal
Danksagung erhalten: 724 Mal
Kontaktdaten:

Re: Untegelmäßiger RegaNeustart nach Update

Beitrag von jmaus » 27.10.2020, 00:26

It-noob hat geschrieben:
26.10.2020, 20:03
[...]
Das die ReGa Zombies durch meine system.exec Aufrufe kommen sehe ich als bestätigt. Leider komme ich nicht dahinter "warum" und was ich noch probieren kann.

PID 23736, 23781, 23795, 23807, 30233 werden auch morgen noch da sein, den Nachweis kann ich dann aber leider erst morgen bringen. ... Und gern nochmal, mir geht es hier absolut nicht um "Recht" haben, der Fehler ist Problem genug ;)
Erzeugt habe ich die Zombies mit folgendem Programm (wobei es keine Rolle spielt, welche URL ich aufrufe und wo ich das "timeout" platziere:

Code: Alles auswählen

string url="http://192.168.178.214";
system.Exec("timeout 3 wget --timeout=2 -q -O /dev/null/ '" # url # "' &");
[...]

ud nochmal später:

Code: Alles auswählen

ps -o pid,ppid,etime,stat,comm,args | grep Z
23736  1012 20h16   Z    ReGaHss          [ReGaHss]
23781  1012  1h00   Z    ReGaHss          [ReGaHss]
23795  1012  1h00   Z    ReGaHss          [ReGaHss]
23807  1012  1h00   Z    ReGaHss          [ReGaHss]
25352  1012 48:54   Z    ReGaHss          [ReGaHss]
25368  1012 48:50   Z    ReGaHss          [ReGaHss]
25511  1012 48:09   Z    ReGaHss          [ReGaHss]
25587  1012 47:38   Z    ReGaHss          [ReGaHss]
25640  1012 47:20   Z    ReGaHss          [ReGaHss]
30233  1012  1d00   Z    ReGaHss          [ReGaHss]
Danke für das Beispiel. Das hat mir geholfen die Zombie-Probleme nachzuvollziehen und ich konnte das Problem auch bereits lokalisieren und in ReGaHss reparieren. In einer der nächsten Versionen von ReGaHss sollte das Problem der nicht aufgeräumten Zombie Prozesse beseitigt sein. Bis dahin kannst du das "&" am schluss auch entfernen und dann sollten keine Zombie prozesse erzeugt werden. Jedoch musst du dann darauf achten das die kommandos nicht zu lange die ReGaHss blockieren, deshalb der ratschlag hier eben das timeout kommando zu verwenden. Danke aber schon einmal für den Hinweis und die Beispiele. Das hat wirklich geholfen das Problem zu finden und zu lösen.

Bzgl. Monit zombies habe ich den folgenden Monit Dokumentationseintrag gefunden (https://mmonit.com/monit/documentation/ ... TATUS-TEST):
The asynchronous nature of the program check allows for non-blocking behaviour in the current Monit design, but it comes with a side-effect: when the program has finished executing and is waiting for Monit to collect the result, it becomes a so-called "zombie" process. A zombie process does not consume any system resources (only the PID remains in use) and it is under Monit's control and the zombie process is removed from the system as soon as Monit collects the exit status. This means that every "check program" will be associated with either a running process or a temporary zombie. This unwanted zombie side-effect will be removed in a later release of Monit.
Das heisst also das dies eine bekannte Limitation von Monit ist, die jedoch vollkommen unproblematisch ist. Und genau wie dort beschrieben sollte es eigentlich auch kein großes Problem sein das die aktuelle ReGaHss Version bei system.Exec() aufrufen mit dem "&" Zeichen Zombie Prozesse generiert.
RaspberryMatic 3.57.5.20210424 @ ESXi, ~190 Hm-RF/HmIP-RF/HmIPW Geräte, ioBroker – RaspberryMatic GitHub Projekt / Twitter

It-noob
Beiträge: 65
Registriert: 17.08.2017, 16:42
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Untegelmäßiger RegaNeustart nach Update

Beitrag von It-noob » 27.10.2020, 05:17

Super ... Danke!

Ich kann dich nur bestätigen, Zombies die sich selbst terminieren sind mir egal und für Homematic User in 99,9999ff absolut unkritisch.
Meine größte Sorge war, dass die Suche nach der richtigen Ursache Jahre gebraucht hätte, da nur ich das Problem habe... so hab ich zwischenzeitlich meine Scripte wieder auf:

Code: Alles auswählen

string url="http://192.168.178.210";
string stderr; string stdout;
system.Exec("timeout 3 nohup wget --timeout=2 -q -O /dev/null '"#url#"'" , &stdout, &stderr);
geändert .

Antworten

Zurück zu „RaspberryMatic“