ofono does not send messages to rild when terminating
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ofono (Ubuntu) |
Incomplete
|
High
|
Alfonso Sanchez-Beato |
Bug Description
When ofono is stopped ("stop ofono"), some messages that are supposed to be sent to rild to clean up resources are not really sent. This happens due to the asynchronous nature of g_ril_send(): ofono never returns to glib's main loop after having started the termination stage of the process. The message that is not sent is
RIL_REQUEST_
In some modems, this leaks call-id resources and no data call can be established after a few start/stop ofono iterations.
To reproduce:
# stop ofono
# export OFONO_RIL_
# export OFONO_RIL_TRACE=""
# ofonod -n -d -p ril,rilmodem,
* Check that we have an active data connection
# pkill ofonod
Taking a look at the log, we should see near the end:
ofonod[XXXX]: Terminating
...
ofonod[XXXX]: [XXXX]> RIL_REQUEST_
...
ofonod[XXXX]: [XXXX]> RIL_REQUEST_
DEACTIVATE_
ofonod[XXXX]: Device: > (... some hex data ...)
should have been printed after the request trace because we have set the environment variable OFONO_RIL_
Changed in ofono (Ubuntu): | |
importance: | Undecided → High |
assignee: | nobody → Tony Espy (awe) |
Changed in ofono (Ubuntu): | |
status: | New → Triaged |
Here's a possible fix from the nemomobile tree:
https:/ /github. com/nemomobile- packages/ ofono/commit/ 8dee8f75dec0ea0 2584e5ff9bbdb4d ddbf530ca6