OK, so there are two low-level problems:

1. InProgress error returned by SetProperty('Active',true) call to ofono
for a gprs-context.

Alfonso's first syslog shows that this can happen, but I'm not sure
exactly how to reproduce.  NM would've had to start activation, then
Attached bounced down and back up again, without ofono canceling the
context activation.  The next time NM tried to activate, in theory it'd
be returned InProgress.

Right now, NMModemOfono::stage1_prepare_done() always emits a failed
MODEM_PREPARE_RESULT for any error returned by ofono in response to the
SetProperty call.

The fix is to check explicitly for error == InProgress, and just return
without emitting a result ( this is the same thing that happens if no
error is returned ).

2. The context in question is already active.

This can be reproduced by killing NetworkManager, when it restarts, it
gets stuck in the Prepare stage.

This is because ofono doesn't send an error if SetProperty('Active',
true) would have no effect on the property's value ( ie. if it's already
true ).  Furthermore, as the context 'Settings' property is already
populated, context_property_changed() is never invoked for the
'Settings', so a MODEM_PREPARE_RESULT is never sent, true or false, so
the device is stuck in PREPARE state.

The fix involves the following changes to NMModemOfono:

do_context_activate() should check the cached value of 'Active', and if
true, should call a new function called process_context_settings(),
which should be based on the current context_property_changed().  This
will result in a PREPARE_RESULT being generated, and thus the device
should no longer get stuck in PREPARE state.

In theory this should work, as NM should just deal with any EEXISTS
errors when it tries to re-configure the IP address, routing table
entries, and DNS nameservers.  It this *doesn't* just work, then we may
need some upstream assistance.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1565717

Title:
  No connection after returning from area without coverage

To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1565717/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to