qmi-proxy abort with Quectel EG25
Hello I recently experienced rough stop of qmi-proxy with my Quectel EG25 modem, below is the backtrace:
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007fcf49237524 in __GI_abort () at abort.c:79
#2 0x00007fcf493e8d63 in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x7fcf497a1960 <__FUNCTION__.31945> "device_close_if_unused",
message=<optimized out>) at ../glib-2.58.3/glib/gtestutils.c:2718
#3 0x00007fcf4944286a in g_assertion_message_expr (domain=domain@entry=0x7fcf49790602 "Qmi", file=file@entry=0x7fcf49747dc0 "../../../libqmi-1.28.8/src/libqmi-glib/qmi-proxy.c",
line=line@entry=797, func=func@entry=0x7fcf497a1960 <__FUNCTION__.31945> "device_close_if_unused", expr=expr@entry=0x0) at ../glib-2.58.3/glib/gtestutils.c:2741
#4 0x00007fcf495d89d6 in device_close_if_unused (device=0x5646919b8400, self=0x5646919a4c20) at ../../../libqmi-1.28.8/src/libqmi-glib/qmi-proxy.c:797
#5 device_close_if_unused (self=0x5646919a4c20, device=0x5646919b8400) at ../../../libqmi-1.28.8/src/libqmi-glib/qmi-proxy.c:760
#6 0x00007fcf495d8b2a in untrack_client (self=0x5646919a4c20, client=<optimized out>) at ../../../libqmi-1.28.8/src/libqmi-glib/qmi-proxy.c:269
#7 0x00007fcf495d9097 in connection_readable_cb (socket=<optimized out>, condition=<optimized out>, client=<optimized out>) at ../../../libqmi-1.28.8/src/libqmi-glib/qmi-proxy.c:982
#8 0x00007fcf49086889 in socket_source_dispatch (source=0x5646919b0030, callback=0x7fcf495d8d60 <connection_readable_cb>, user_data=0x5646919a1720) at ../glib-2.58.3/gio/gsocket.c:3857
#9 0x00007fcf4941aac8 in g_main_dispatch (context=0x5646919a2250) at ../glib-2.58.3/glib/gmain.c:3182
#10 g_main_context_dispatch (context=context@entry=0x5646919a2250) at ../glib-2.58.3/glib/gmain.c:3847
#11 0x00007fcf4941aeb8 in g_main_context_iterate (context=0x5646919a2250, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.58.3/glib/gmain.c:3920
#12 0x00007fcf4941b1b2 in g_main_loop_run (loop=0x5646919ae3c0) at ../glib-2.58.3/glib/gmain.c:4116
#13 0x000056469108c261 in main (argc=<optimized out>, argv=<optimized out>) at ../../../libqmi-1.28.8/src/qmi-proxy/qmi-proxy.c:230
(gdb)
this lead to a g_assert_not_reached
here https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/blob/1.28.8/src/libqmi-glib/qmi-proxy.c#L797
In my kernel I see several error message on driver qmi-wwan :
Sep 29 20:19:07.195913 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.196111 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.291925 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.292147 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.387907 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.388100 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.483902 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.484100 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.579897 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.580078 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.675894 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.676073 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.771889 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
Sep 29 20:19:07.772071 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: wdm_int_callback - 0 bytes
Sep 29 20:19:07.867886 tap-51A5 kernel: qmi_wwan 4-1.1:1.4: nonzero urb status received: -71
I'm using libqmi 1.28.8 and ModemManager 1.16.6.
The root cause seems to come from my host (and these USB errors) but I would like to know what do you think about that ? especially if the g_assert_not_reached is really useful ?
Thanks in advance
Edited by Frédéric Martinsons