← Back to team overview

desktop-packages team mailing list archive

[Bug 1480877] Re: Access points' "PropertiesChanged" dbus signals freeze UI on mobile devices

 

I just added tasks for the packages mentioned in comment #65.

Some things learned today:

 - the sub-component of QNetwork that's most likely the cause is called
Bearer Management.  One of it's classes, QNetworkSession includes a
plugin for NetworkManager which creates listeners for new AccessPoint
DBus objects.

 - msyncd ( part of buteo-syncfw ) includes it's own internal
NetworkManager class ( dated from 2010 ) which in turn uses
QNetworkSession.

 - unity8 appears to use QNetworkAccessManager, which uses
QNetworkSession.

 - sync-monitor uses QNetworkConfigurationManager, which is also part of
Bearer Management, and most likely causes a QNetworkSession to be
instantiated.

- maliit-framework is the only puzzle, as it doesn't seem to have any
network code.  It does use QGuiApplication however, which might in turn
hook into the network code.

 - the bulk of the code involved on the Qt side can be found in the
qtbase-opensource-base source package.

 - I'm no expert in QtDBus, but from what I can tell, to listen to a
DBus signal ( which causes a match rule to be created ), you need to
call connect on an instance of a DBusConnection, similar to what you'd
do with a native Qt signal and slot.  Conversely, to remove a signal
watch, you need to call the disconnect() function.

 - The connect to for a new new AccessPoint object can be found in
src/plugins/bearer/networkmanager/networkmanagerservice.cpp in the
funcion
QNetworkManagerInterfaceAccessPoint::QNetworkManagerInterfaceAccessPoint().

 - I don't see any corresponding cleanup code when an access point is
removed ( ie. there's no disconnect() call made to the bus )

That's all I have for now...

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to network-manager in Ubuntu.
https://bugs.launchpad.net/bugs/1480877

Title:
  Access points' "PropertiesChanged" dbus signals freeze UI on mobile
  devices

Status in Canonical System Image:
  Confirmed
Status in indicator-network package in Ubuntu:
  Incomplete
Status in network-manager package in Ubuntu:
  Incomplete
Status in buteo-syncfw package in Ubuntu RTM:
  New
Status in location-service package in Ubuntu RTM:
  New
Status in maliit-framework package in Ubuntu RTM:
  New
Status in network-manager package in Ubuntu RTM:
  Incomplete
Status in sync-monitor package in Ubuntu RTM:
  New
Status in unity8 package in Ubuntu RTM:
  New

Bug description:
  Krillin, rc-proposed, r83

  
  DESCRIPTION:
  I've been trying to track down the cause of the occasional UI freezes on my Krillin device, and I noticed that whenever the UI freezes for 2-4 seconds, I get a burst of "PropertiesChanged" signals in dbus-monitor

  Here's a log of what's shown in dbus-monitor:
  http://pastebin.ubuntu.com/11992322/

  I'd guess the problem is in the code that actually catches the signals
  and acts accordingly.

  HOW TO REPRODUCE: 
  1) Move to a place where many wifi hotspots are available
  2) Connect the device via USB and run "phablet-shell" and then "dbus-monitor"
  3) Use the device while keeping an eye on dbus-monitor output

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


References