Calaos, Home Automation Forum
Plantage de calaos-server v3 avec certaines regles - Printable Version

+- Calaos, Home Automation Forum (https://calaos.fr/forum)
+-- Forum: Général (https://calaos.fr/forum/forumdisplay.php?fid=1)
+--- Forum: Discussions Générales (https://calaos.fr/forum/forumdisplay.php?fid=3)
+--- Thread: Plantage de calaos-server v3 avec certaines regles (/showthread.php?tid=760)



Plantage de calaos-server v3 avec certaines regles - mifrey - 09-18-2017

Salut a tous,

Je fais suite aux problemes que j'avais initialement commence a exposer au post https://calaos.fr/forum/showthread.php?tid=685&pid=6428#post_6426 .


J'ai toujours les meme problemes depuis que je suis en v3 (je suis passe par les alpha 3, 4 et 5). J'ai actuellement la derniere alpha 5 https://www.calaos.fr/download/experimental/calaos-os/raspberrypi/calaos-os-raspberrypi-v3.0-alpha5-0-gf476150-2017-08-15.tar.xz

Par exemple mon script https://calaos.fr/wiki/fr/liste_script#detection_d_une_situation_panique fonctionnait parfaitement avec la v2 mais fait planter calaos-server v3.

En supprimant la regle ca ne plante plus donc le probleme est bien la. J'ai reduit la regle au minimum pour essayer de simplifier l'analyse du probleme :

Code:
    <calaos:rule name="Panique" specialType="" type="Panique">
        <calaos:condition type="script">
            <calaos:input id="input_7"/>
            <calaos:script type="lua"><![CDATA[return true]]></calaos:script>
        </calaos:condition>
    </calaos:rule> 


Avec cette regle tres simple, le fait d'appuyer 3 fois rapidement sur le poussoir (input_7) fait planter calaos-server (avec 2 fois ca ne plante pas).

Exemple de plantage #1 :
Code:
Sep 18 22:49:02 raspberrypi systemd[1]: calaos-server.service: Main process exited, code=dumped, status=11/SEGV
Sep 18 22:49:02 raspberrypi systemd[1]: calaos-server.service: Unit entered failed state.
Sep 18 22:49:02 raspberrypi systemd[1]: calaos-server.service: Failed with result 'core-dump'.
Sep 18 22:49:03 raspberrypi systemd[1]: calaos-server.service: Service has no hold-off time, scheduling restart.
Sep 18 22:49:03 raspberrypi systemd[1]: Stopped Calaos home automation server service.
Sep 18 22:49:03 raspberrypi systemd[1]: Starting Calaos home automation server service...
Sep 18 22:49:03 raspberrypi systemd[1]: Started Calaos home automation server service.
Sep 18 22:49:03 raspberrypi calaos_server[1470]:  ╔═══════════════════════════════════════════════╗
Sep 18 22:49:03 raspberrypi calaos_server[1470]:  ║                                               ║
Sep 18 22:49:03 raspberrypi calaos_server[1470]:  ║  Calaos Server Daemon - http://www.calaos.fr  ║
Sep 18 22:49:03 raspberrypi calaos_server[1470]:  ║    v3.0-alpha5                                ║
Sep 18 22:49:03 raspberrypi calaos_server[1470]:  ╚═══════════════════════════════════════════════╝

Exemple de plantage #2 :
Code:
Exemple de plantage #1 :Sep 18 23:02:04 raspberrypi calaos_server[1470]: terminate called after throwing an instance of 'std::bad_alloc'
Sep 18 23:02:04 raspberrypi calaos_server[1470]:   what():  std::bad_alloc
Sep 18 23:02:04 raspberrypi systemd[1]: calaos-server.service: Main process exited, code=dumped, status=6/ABRT
Sep 18 23:02:04 raspberrypi systemd[1]: calaos-server.service: Unit entered failed state.
Sep 18 23:02:04 raspberrypi systemd[1]: calaos-server.service: Failed with result 'core-dump'.
Sep 18 23:02:04 raspberrypi systemd[1]: calaos-server.service: Service has no hold-off time, scheduling restart.
Sep 18 23:02:04 raspberrypi systemd[1]: Stopped Calaos home automation server service.
Sep 18 23:02:04 raspberrypi systemd[1]: Starting Calaos home automation server service...
Sep 18 23:02:04 raspberrypi systemd[1]: Started Calaos home automation server service.
Sep 18 23:02:04 raspberrypi calaos_server[1530]:  ╔═══════════════════════════════════════════════╗
Sep 18 23:02:04 raspberrypi calaos_server[1530]:  ║                                               ║
Sep 18 23:02:04 raspberrypi calaos_server[1530]:  ║  Calaos Server Daemon - http://www.calaos.fr  ║
Sep 18 23:02:04 raspberrypi calaos_server[1530]:  ║    v3.0-alpha5                                ║
Sep 18 23:02:04 raspberrypi calaos_server[1530]:  ╚═══════════════════════════════════════════════╝

Je suppose que seuls les core developers pourraient m'aider...


RE: Plantage de calaos-server v3 avec certaines regles - raoulh - 09-19-2017

Ok, je vais voir ca.
Merci pour le retour, j'ai un truc simple pour le reproduire maintenant


RE: Plantage de calaos-server v3 avec certaines regles - raoulh - 09-22-2017

Salut,

Je viens de faire une v3-alpha6 si tu veux bien tester, ca devrait etre resolu. Du moins ca fonctionne ton test chez moi avec ca.


RE: Plantage de calaos-server v3 avec certaines regles - mifrey - 09-22-2017

Ca plante toujours avec l'apha6 Confused .

Donc pour aller plus loin, j'ai d'abord retire toutes les regles pour ne laisser que celle qui posait probleme et ca plantait toujours comme avant. J'ai ensuite retire progressivement les differentes pieces et leurs IOs et la j'ai remarque que ca plantait toujours mais moins souvent. Au moins il y a d'IOs, au plus il faut que j'appuie un grand nombre de fois sur le poussoir pour faire planter calaos-server.

Avec la config minimale ci-dessous, je fais planter calaos-server en appuyant sur le poussoir comme je le montre dans cette video https://youtu.be/sXiHTpnefCk .

io.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<calaos:ioconfig xmlns:calaos="http://www.calaos.fr">
   <calaos:home>
       <calaos:room name="Salle à manger" type="sam" hits="180">
           <calaos:input enabled="true" gui_type="switch" host="192.168.1.110" id="input_7" io_type="input" name="SAM-B232-p2" port="502" type="WIDigitalBP" var="51" visible="false" wago_841="true"/>
       </calaos:room>
   </calaos:home>
</calaos:ioconfig>


rules.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<calaos:rules xmlns:calaos="http://www.calaos.fr">
   <calaos:rule name="Panique" specialType="" type="Panique">
       <calaos:condition type="script">
           <calaos:input id="input_7"/>
           <calaos:script type="lua"><![CDATA[print("PANIQUE")
return true]]></calaos:script>
       </calaos:condition>
   </calaos:rule>
</calaos:rules>



RE: Plantage de calaos-server v3 avec certaines regles - raoulh - 09-22-2017

J'ai testé ca et j'ai pas de crash du tout Sad


RE: Plantage de calaos-server v3 avec certaines regles - mifrey - 09-22-2017

mmm alors est-ce que ce probleme pourrait etre specifique au Raspberry Pi ?


RE: Plantage de calaos-server v3 avec certaines regles - mifrey - 09-22-2017

J'ai du nouveau. J'ai fait une machine virtuelle avec calaos-os-intel-core2-32-v3.0-alpha6-0-g16abcae-2017-09-22.tar.xz et ca ne plante pas ! Le probleme a donc l'air lie a l'image pour le Pi.


RE: Plantage de calaos-server v3 avec certaines regles - mifrey - 01-02-2019

Voisi un nouvel essai depuis plus d'un an. J'ai pris un rpi2 avec l'image calaos-os-raspberrypi2-v3.0-beta1-1-g072309e-2018-11-20.tar.xz.  Ca plante quasi plus sauf quand je joue longtemps et j'appuie des dizaines de fois sur le poussoir.  Comme ca marche mieux avec le rpi2 qu'avec le rpi1 et que ca marchait parfaitement avec la VM, j'ai tendance a penser que le probleme est du a la capacite (memoire et/ou rapidite) du hardware.

Code:
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] lua (ScriptExec.cpp:39) Starting script. (0x1509ad0)
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] process (ExternProc.cpp:201) Starting process: /usr/bin/calaos_script --socket /tmp/calaos_proc_f0bd3a2e-4edf-ccd0-4476-b9bbf072ce01_lua_992 --namespace lua
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] input (WIDigitalBP.cpp:81) Got 0 on std input 33
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] input (InputSwitch.cpp:62) input_18: 0
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] lua (ScriptExec.cpp:39) Starting script. (0x1696648)
Jan 02 16:47:13 raspberrypi2 calaos_server[992]: [INF] process (ExternProc.cpp:201) Starting process: /usr/bin/calaos_script --socket /tmp/calaos_proc_d2993ca6-6def-eda4-54e5-d33caa8afce4_lua_992 --namespace lua
Jan 02 16:47:13 raspberrypi2 systemd[1]: calaos-server.service: Main process exited, code=dumped, status=11/SEGV
Jan 02 16:47:13 raspberrypi2 systemd[1]: calaos-server.service: Unit entered failed state.
Jan 02 16:47:13 raspberrypi2 systemd[1]: calaos-server.service: Failed with result 'core-dump'.
Jan 02 16:47:13 raspberrypi2 systemd[1]: calaos-server.service: Service has no hold-off time, scheduling restart.
Jan 02 16:47:13 raspberrypi2 systemd[1]: Stopped Calaos home automation server service.
Jan 02 16:47:13 raspberrypi2 systemd[1]: Starting Calaos home automation server service...
Jan 02 16:47:13 raspberrypi2 systemd[1]: Started Calaos home automation server service.
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]:  ╔═══════════════════════════════════════════════╗
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]:  ║                                               ║
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]:  ║  Calaos Server Daemon - http://www.calaos.fr  ║
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]:  ║    v3.0-rc1-38-gadf6d59                       ║
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]:  ╚═══════════════════════════════════════════════╝
Jan 02 16:47:13 raspberrypi2 calaos_server[1097]: Using config path: /etc/calaos/



RE: Plantage de calaos-server v3 avec certaines regles - raoulh - 01-04-2019

Oui c'est possible. Apres je deconseille quand meme l'utilisation d'un rpi pour une maison...
C'est juste bien pour tester/bidouiller. Une vraie machine type Intel NUC c'est quand meme bien plus stable