LIBQMI APIs Response "Transaction timed out"

Aleksander Morgado aleksandermj at chromium.org
Mon Aug 14 11:44:04 UTC 2023


Hey,

>
> We are using some libqmi APIs like the below:
> qmi_client_uim_register_events_finish()
> qmi_client_uim_get_slot_status_finish()
> qmi_client_uim_get_card_status_finish()
> qmi_client_dms_swi_get_current_firmware_finish()
> qmi_client_dms_set_event_report_finish()
> qmi_client_uim_get_slot_status_finish()
>
> When testing for a long time, some of these APIs respond with an error message: "Transaction timed out".
>
> We checked the logs from the modem side and the chipset provider (Qualcomm) also confirmed with us that the modem replies to the QMI success.
> Example:
> In case qmi_client_uim_get_slot_status_finish()
> The module replied:
> ...
> MsgType = QMI_UIM_GET_CARD_STATUS
> ...
> resp {
> result = QMI_RESULT_SUCCESS
> error = QMI_ERR_NONE
> }
> ...
>
> ...
> MsgType = QMI_UIM_GET_SLOTS_STATUS
> ...
> resp {
> result = QMI_RESULT_SUCCESS
> error = QMI_ERR_NONE
> }
> ...
> physical_slot_status[0] {
> physical_card_status = UIM_PHYSICAL_CARD_STATE_PRESENT
> physical_slot_state = UIM_PHYSICAL_SLOT_STATE_ACTIVE
> ...
>
> But the error message is: "Transaction timed out".
>
> Anything can be the cause of these problems? How can we avoid it?
>

Can you provide a debug log including the full QMI message contents
and timing details of when they're sent and received?

A transaction timed out error has two main reasons:
 * The response was not received on time. There's a timeout defined
for each QMI message, and if the response doesn't arrive in that time,
the user call finishes with the timed out error, and the response is
discarded if it arrives later on.
 * There's also the unlikely chance of a wrongly formed response, e.g.
with the wrong client id or the wrong transaction id. If you're using
the qmi-proxy, you could also validate whether the proxy does receive
the response on time or not. If the proxy discards the response, the
user call in the main program would also finish with the same timed
out error.

-- 
Aleksander


More information about the libqmi-devel mailing list