mysgw.service fails with SEGV if ontroller connects



  • I use a raspberry as Gateway and as controller (FHEM). The gateway config looks like this:

    ./configure --my-transport=rf24  --my-rf24-channel=123 --my-rf24-pa-level=RF24_PA_MAX --my-gateway=serial --my-serial-is-pty --my-serial-port=/dev/ttyMySensorsGateway --my-serial-groupname=dialout
    

    If I try to connect the controller the service fails

    pi@raspberrypi:/tmp $ sudo systemctl status  mysgw.service -l
    ā— mysgw.service - MySensors Gateway daemon
       Loaded: loaded (/etc/systemd/system/mysgw.service; enabled)
       Active: failed (Result: signal) since Sun 2019-07-21 21:19:12 CEST; 4min 16s ago
      Process: 5078 ExecStart=/usr/local/bin/mysgw -q (code=killed, signal=SEGV)
     Main PID: 5078 (code=killed, signal=SEGV)
    
    Jul 21 21:18:15 raspberrypi systemd[1]: Started MySensors Gateway daemon.
    Jul 21 21:19:12 raspberrypi systemd[1]: mysgw.service: main process exited, code=killed, status=11/SEGV
    Jul 21 21:19:12 raspberrypi systemd[1]: Unit mysgw.service entered failed state.
    
    

    The log mysgw.log is on debug but no message appears at the time of failure.

    FHEM controller looks like this:
    2019.07.21 21:19:12 3: Opening MyGateway_0 device /dev/ttyMySensorsGateway
    2019.07.21 21:19:12 3: MyGateway_0 device opened
    2019.07.21 21:19:12 3: MYSENSORS: ignoring presentation-msg from unknown radioId 0, childId 255, sensorType 18
    2019.07.21 21:19:12 1: /dev/ttyMySensorsGateway disconnected, waiting to reappear (MyGateway_0)

    Any ideas what to try or how to further debug?

    Thanks,
    Dirk


  • Mod

    @dirk120 try starting the gateway manually (not through systemd) as described on https://www.mysensors.org/build/raspberry#test but start the command with strace, i.e.

    sudo strace ./bin/mysgw
    

    and you should get pretty detailed information on what is going on.



  • I started the gateway manually and get this:

    gettimeofday({1563816015, 152499}, NULL) = 0
    gettimeofday({1563816015, 152644}, NULL) = 0
    gettimeofday({1563816015, 152790}, NULL) = 0
    nanosleep({0, 10000000}, NULL)          = 0
    ioctl(5, FIONREAD, [0])                 = 0
    gettimeofday({1563816015, 163378}, NULL) = 0
    gettimeofday({1563816015, 163527}, NULL) = 0
    gettimeofday({1563816015, 163692}, NULL) = 0
    nanosleep({0, 10000000}, NULL)          = 0
    ioctl(5, FIONREAD, [11])                = 0
    read(5, "0", 1)                         = 1
    ioctl(5, FIONREAD, [10])                = 0
    read(5, ";", 1)                         = 1
    ioctl(5, FIONREAD, [9])                 = 0
    read(5, "0", 1)                         = 1
    ioctl(5, FIONREAD, [8])                 = 0
    read(5, ";", 1)                         = 1
    ioctl(5, FIONREAD, [7])                 = 0
    read(5, "3", 1)                         = 1
    ioctl(5, FIONREAD, [6])                 = 0
    read(5, ";", 1)                         = 1
    ioctl(5, FIONREAD, [5])                 = 0
    read(5, "0", 1)                         = 1
    ioctl(5, FIONREAD, [4])                 = 0
    read(5, ";", 1)                         = 1
    ioctl(5, FIONREAD, [3])                 = 0
    read(5, "2", 1)                         = 1
    ioctl(5, FIONREAD, [2])                 = 0
    read(5, ";", 1)                         = 1
    ioctl(5, FIONREAD, [1])                 = 0
    read(5, "\n", 1)                        = 1
    --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
    +++ killed by SIGSEGV +++
    pi@raspberrypi:~/MySensors $ 
    

    I'm not sure what this means ? Any idea ?

    Thanks,
    Dirk



  • I solved the problem by a complete deinstall of mysensor and reinstall the master branch version (was dev version before).

    Dirk


  • Admin

    @dirk120 what dev version were you on?


 

200
Online

8.7k
Users

9.5k
Topics

99.5k
Posts