It looks like the reason for this is a race condition that was not
triggered before. In indicator-network, we enable the FW in
HotspotManager::setEnabled() doing:

d->createApDevice();

which loads AP firmware, and if that is successful, immediately after
that

d->enable(device);

However, NM returns an error because the device is in state
NM_DEVICE_STATE_UNAVAILABLE. Introducing a waiting time between both
calls makes it work.

The right solution for this is to track the device state in indicator-
network so we do not enable until state > NM_DEVICE_STATE_UNAVAILABLE.
Note that this happens in krillin/arale because for them we create a new
device when activating hotspot (ap0), while in turbo we are still using
wlan0 and changing the fw does not move the state to "unavailable".

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to indicator-network in
Ubuntu.
https://bugs.launchpad.net/bugs/1579221

Title:
  Hotspot not working with NM 1.2

Status in Canonical System Image:
  In Progress
Status in indicator-network package in Ubuntu:
  In Progress

Bug description:
  While testing network-manager 1.1.93-0ubuntu1~vivid1 we noticed that
  hotspot no longer worked on arale or krillin ( it's not enabled on
  mako ).

  The first issue was that if no NM connection file yet existed for the
  hotspot, indicator-network would fail creating one due to a DBus
  error:

  void nmofono::HotspotManager::Priv::addConnection() Adding new hotspot 
connection
  Failed to add connection: "ipv4.dns: can't set property of type 'au' from 
value of type 'as'"

  This was due to indicator-network using the following code to set this
  setting:

  ipv4[QStringLiteral("dns")] = QVariant(QStringList());

  My guess is that NM's re-factoring of it's DBus code to use gdbus
  instead of dbus-glib, resulting in NM being a bit more strict in it's
  parameter checking.

  Removing this, and the same for the 'addresses' and 'routes' settings allows 
indicator-network to create hotspot connection files once again.
  See the associated branch for the update.

  If a connection file already exists, or one is created with the fix
  from the merge proposal, then the current problem is that when 'Start'
  is pressed, the UI displays a spinner which is never dismissed.

  Testing has shown that the hotspot is actually activated, can be seen
  from other devices and connected to.

  Testing has also shown that it's possible to activate the hotspot
  using nmcli directly, and the result is usable from other clients.

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to