Data Connection Service Fault In Legato 18.10.02

Hello all,

Since upgrading from Legato 18.04 to 18.10.2 we’ve been seeing some segmentation faults in the data connection service. We’re running WP8548 modules with firmware release 16.1 and Sierra Wireless SIM cards. We use a custom board (solder down, no socket) that is nearly identical to the mangOH Red reference design (revision 5)

Here are some logs that capture the failure: data-connection-service.log · GitHub

As suggested by @CoRfr, I will apply this patch over the weekend and report back.

I’m currently trying to determine how many cellular profiles are on our devices. Is it possible to check this from a command line tool?

Cheers,
Nick

I appear to have attached the wrong logs… I’ll fix this in a moment.

Edit: fixed

It seems like there is a le_mdc_GetProfileList API, but there is no helper to access this API through command line.
I logged an improvement ticket for something through ‘cm data’, but looking at your logs it looks like you have 16 profiles at the moment:

an 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4554 | # of cellular profiles returned: 16
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 1, type 0, name profile1
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 2, type 0, name profile2
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 3, type 0, name profile3
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 4, type 0, name profile4
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 5, type 0, name profile5
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 6, type 0, name profile6
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 7, type 0, name profile7
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 8, type 0, name profile8
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 9, type 0, name profile9
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 10, type 0, name profile10
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 11, type 0, name profile11
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 12, type 0, name profile12
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 13, type 0, name profile13
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 14, type 0, name profile14
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 15, type 0, name profile15
Jan 16 00:59:55 swi-mdm9x15 user.info Legato:  INFO | modemDaemon[1011]/le_pa T=main | pa_mdc_qmi.c pa_mdc_GetProfileList() 4562 | Cellular profile retrieved index 16, type 0, name profile16
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | PROCESS: 1266 ,TID 1266
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | SIGNAL: 11, ADDR 0xbe9b802e, AT 0xb6ebee3c SI_CODE 0x00000001
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | ILLEGAL ADDRESS 0xbe9b802e
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | LEGATO VERSION
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | 18.10.2_d0e98e667a1a7fc57a6b20c3c57f83e1
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | 
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | PROCESS COMMAND LINE
Jan 16 00:59:55 swi-mdm9x15 user.err Legato: =ERR= | dcsDaemon[1266] | dcsDaemon 

From my understanding, that’s typically the use case that triggers the bug fixed by Fix a local array's size in le_dcsCellular_GetChannelList() for colle… · legatoproject/legato-af@4a556bc · GitHub

If/when you test this change, please let us know your result as to make sure that it does address your issue.

What we’re gonna do our side is make that bugfix part of our next minor release, and make sure that we add a test as to cover this use case to prevent a regression such as this one in the DCS service.