No D-Bus Reply to Activating Context
I'm having a spurious problem where the D-Bus error reply to a context activation isn't being sent back. This is happenning in the following sequence, where registration is lost while in the midst of activating the context. Not like I can recreate this, but I've received a log from an occurance in the field. I'm running ofono 1.12 with a Cinterion PH8-P driver that I wrote.
Here's a trace of the relevant sequence. I should receive a D-Bus reply from the last line's pri_activate_callback() but I don't. Does anyone see anything odd here, and any reason why the reply wouldn't be being sent? Thanks.
09:20:42.300 gprs-context.c:317 at_gprs_activate_primary cid 1
09:20:42.302 ph8.c:122 ph8_debug Mdm: >
AT+CGDCONT=1,"IP","xxxxxxxx"\r
09:20:42.531 ph8.c:122 ph8_debug App: < \r\n+CGREG:
0\r\n\r\n+CREG: 0\r\n\r\n+CIEV: psinfo,6\r\n
09:20:42.531 gprs.c:2148 ofono_gprs_status_notify /ph8_1
status 0
09:20:42.533 network.c:1349 ofono_netreg_status_notify /ph8_1
status 0 tech -1
09:20:42.536 network.c:1219 current_operator_callback 0x128198,0x1260b8
09:20:42.540 gprs.c:1606 netreg_status_changed 0
09:20:42.540 gprs.c:1606 netreg_status_changed 0
09:20:42.540 network-registration.c:2134 ph8_handle_sind_ciev tech 2
09:20:42.541 gprs.c:340 ph8_ciev_notify bearer 3 (umts)
09:20:42.542 ph8.c:208 ciev_notify
09:20:42.543 ph8.c:122 ph8_debug App: > AT+CGATT=0\r
09:20:42.581 ph8.c:122 ph8_debug Mdm: < \r\nOK\r\n
09:20:42.581 gprs-context.c:281 at_cgdcont_cb ok 1
09:20:42.581 ph8.c:122 ph8_debug App: < \r\nOK\r\n
09:20:42.581 gprs.c:1545 gprs_attach_callback /ph8_1 error =
0
09:20:42.581 ph8.c:122 ph8_debug Mdm: >
AT+CGDATA="PPP",1\r
09:20:42.582 ph8.c:122 ph8_debug App: > AT+CGREG?\r
09:20:42.591 ph8.c:122 ph8_debug App: < \r\n+CGREG:
1,0\r\n\r\nOK\r\n
09:20:42.591 gprs.c:1526 registration_status_cb /ph8_1 error
0 status 0
09:20:42.591 gprs.c:2148 ofono_gprs_status_notify /ph8_1
status 0
09:20:42.611 ph8.c:122 ph8_debug Mdm: < \r\nNO CARRIER\r\n
09:20:42.611 gprs-context.c:258 at_cgdata_cb Unable to enter data
state
09:20:42.611 gprs-context.c:266 at_cgdata_cb not ok, <NO CARRIER>,
error 5/0
09:20:42.611 gprs.c:859 pri_activate_callback 0x12c980 -
error 5/0
09:20:42.611 gprs.c:863 pri_activate_callback Activating
context failed with error: Unknown error type
-- Brian
Hi Brian,
Quoted 3 lines
09:20:42.611 gprs.c:863
pri_activate_callback
Activating context failed with error: Unknown error type
Looking at that line, we are sending a reply right after printing the message. In case the message is NULL, you'd most likely crash inside D-Bus or get an assertion of some kind.
The pending variable is also not messed with anywhere else, so you should be getting a reply.
The only thing I can suggest is to try and simulate this behavior with phonesim and see if you can duplicate / debug it.
Regards,
-Denis
Quoted 7 lines
Quoted 2 lines
09:20:42.611 gprs.c:863
pri_activate_callback
Activating context failed with error: Unknown error typeLooking at that line, we are sending a reply right after printing the message. In case the message is NULL, you'd most likely crash inside D-Bus or get an assertion of some kind.
Quoted 5 lines
The pending variable is also not messed with anywhere else, so you should be getting a reply.
The only thing I can suggest is to try and simulate this behavior with phonesim and see if you can duplicate / debug it.
I traced the log and code and agree, which is why I can't understand why the D-Bus reply is either not sent or perhaps not received, though it only occurs in this particular sequence and is the only case a method return is ever "lost". dbus has a bug in that dbus-monitor can't trace method returns, so I can't easily see what's happenning especially as it's quite sporadic.
So I punted... I upgraded from ofono 1.12 to 1.14 which has a significant overhaul to gdbus, though I can't find anything in the ofono mailing list that explains what or why. And I'll see if the issue persists.
Quoted 2 lines
Regards,
-Denis
Thanks, Denis.
-- Brian