Legato Application shutting down because of le_gnss_start failing

Hello,

we are encountering issues while doing extensive use of Legato under our product.
We are doing periodical wake-ups for GNSS fixes, and we have a failure where the device does not position anymore.
We could get the log, it appears that le_gnss_start() is faulting, and this seems related to pa_gnss_Start() platform adaptation function.

We are running on WP7702, using legato 11.19.0

Note that in many cases everything works fine, the device has been doing several wake-ups/positioning/Sleep before failing. We are using ULPM.

Blockquote
Oct 5 23:33:04 wblgt01_012 user.err Legato: =ERR= | posDaemon[1103]/le_pa_gnss T=main | pa_gnss_qmi.c pa_gnss_Start() 3557 | ERROR le_sem_WaitWithTimeOut -8
Oct 5 23:33:04 wblgt01_012 user.err Legato: =ERR= | posDaemon[1103]/le_pa_gnss T=main | pa_gnss_qmi.c pa_gnss_Start() 3558 | ERROR EngineState is not ON. 3
Oct 5 23:33:04 wblgt01_012 user.err Legato: =ERR= | powerManagerService[1112]/powerMgr T=main | le_ulpm.c le_ulpm_ShutDown() 499 | Wakelock held!! System can’t be shut down. Try again.
Oct 5 23:33:04 wblgt01_012 user.emerg Legato: EMR | gnssService[1036]/gnssServiceComponent T=main | gnssService.c startGNSSHandler() 225 | Error : can’t start GNSS
Oct 5 21:33:04 wblgt01_012 user.debug Legato: DBUG | lpmService[1054]/framework T=main | lpm_server.c CleanupClientData() 98 | Client 0x7f56b188 is closed !!!
Oct 5 23:33:04 wblgt01_012 user.emerg Legato: EMR | tracker[1149]/framework T=main | messagingSession.c ClientSocketHangUp() 873 | Session closed by server (tracker.trackerComponent.gnss:7f267f3c005dde20b082897603d7cb19).
Oct 5 21:33:04 wblgt01_012 user.debug Legato: DBUG | protocolService[1127]/framework T=main | protocol_server.c CleanupClientData() 98 | Client 0x7f59c708 is closed !!!
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | gpioService[1045]/sysfsGpio T=main | gpioSysfsUtils.c gpioSysfs_SessionCloseHandlerFunc() 1215 | Releasing GPIO 36
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | gpioService[1045]/sysfsGpio T=main | gpioSysfsUtils.c gpioSysfs_SessionCloseHandlerFunc() 1215 | Releasing GPIO 38
Oct 5 21:33:04 wblgt01_012 user.debug Legato: DBUG | lpmService[1054]/framework T=main | lpm_server.c CleanupClientData() 98 | Client 0x7f56b0f8 is closed !!!
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | supervisor[881]/supervisor T=main | proc.c proc_SigChildHandler() 2079 | Process ‘tracker’ (PID: 1149) has exited with exit code 1.
Oct 5 23:33:04 wblgt01_012 user.err Legato: =ERR= | posDaemon[1103]/posDaemon T=main | le_gnss.c CloseSessionEventHandler() 1271 | SessionRef (0x7f577c48) has been closed
Oct 5 23:33:04 wblgt01_012 user.warn Legato: -WRN- | supervisor[881]/supervisor T=main | app.c app_SigChildHandler() 4066 | Process ‘tracker’ in app ‘tracker’ faulted: Ignored.
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | supervisor[881]/supervisor T=main | proc.c proc_SigChildHandler() 2079 | Process ‘gnssService’ (PID: 1036) has exited with exit code 1.
Oct 5 23:33:04 wblgt01_012 user.crit Legato: CRT | supervisor[881]/supervisor T=main | app.c app_SigChildHandler() 4087 | Process ‘gnssService’ in app ‘gnssService’ faulted: Restarting app.
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | supervisor[881]/supervisor T=main | app.c app_Stop() 3596 | Stopping app ‘gnssService’
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | supervisor[881]/supervisor T=main | app.c app_StopComplete() 4753 | app ‘tracker’ has stopped.
Oct 5 23:33:04 wblgt01_012 user.info Legato: INFO | supervisor[881]/supervisor T=main | apps.c DeactivateAppContainer() 374 | Application ‘tracker’ has stopped.
O

I attach the full log below
logread_sn0012_tracker_stopped.txt (414.0 KB)

Can anyone explain what can cause this ?

Can you reproduce the issue with AT! gpsfix command?

This can isolate if legato api has problem

I cannot test this on the failing device. I will if I am able to reproduce the issue.
I see different issue on another device which is similar but not the same, I will make a separate post.

Can’t you extract any information from the log provided ?

you can also try the following and see if it can recover the GNSS session

gnss <enable/disable>
gnss <start/stop>