Whoopsie continually relaunching

Bug #1720331 reported by Rachel Greenham on 2017-09-29
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gnome-control-center (Ubuntu)
Low
James Henstridge
whoopsie (Ubuntu)
Medium
Unassigned
whoopsie-preferences (Ubuntu)
High
James Henstridge

Bug Description

Today for the first time, and coincidentally looking for a different setting, I went to the Settings->Privacy dialogue. I was also (coincidentally for a different reason, relating to #1720149) already tailing /var/log/syslog to a terminal.

Immediately on opening that dialogue, the syslog tail flooded with whoopsie continually relaunching, causing enough work to raise the fan speeds. This is a representative section from towards the end of me letting it, before I killed the service, with some necessary viciousness. Specifically

systemctl stop whoopsie
(didn't stop it)
systemctl disable whoopsie
(didn't stop it)
(find pid for whoopsie's root process and kill it)
(that stopped it)

Also for good measure ensured the automatic bug reporting option in the privacy settings dialog was set to manual, which I think was done anyway when I disabled whoopsie, though the dialog wasn't on top at the time for me to be sure. It had been set to automatic when I first opened the dialog.

Snippet from syslog attached. It was just repeating this continually for several minutes before I stopped it.

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: whoopsie 0.2.58
ProcVersionSignature: Ubuntu 4.13.0-12.13-generic 4.13.3
Uname: Linux 4.13.0-12-generic x86_64
NonfreeKernelModules: nvidia_uvm nvidia_drm nvidia_modeset nvidia
ApportVersion: 2.20.7-0ubuntu1
Architecture: amd64
CrashReports:
 664:1000:119:0:2017-09-25 18:16:58.760134901 +0100:2017-09-25 18:16:58.760134901 +0100:/var/crash/_opt_google_chrome_chrome.1000.upload
 640:1000:119:102847031:2017-09-27 20:28:45.352315425 +0100:2017-09-28 09:02:32.195212507 +0100:/var/crash/_usr_bin_gnome-shell.1000.crash
 640:1000:119:34020328:2017-09-25 18:16:57.656132936 +0100:2017-09-25 18:16:58.760134901 +0100:/var/crash/_opt_google_chrome_chrome.1000.crash
 600:111:119:0:2017-09-25 18:16:59.348145502 +0100:2017-09-25 18:16:59.348145502 +0100:/var/crash/_opt_google_chrome_chrome.1000.uploaded
CurrentDesktop: GNOME
Date: Fri Sep 29 10:00:34 2017
InstallationDate: Installed on 2017-07-30 (60 days ago)
InstallationMedia: Ubuntu-GNOME 17.04 "Zesty Zapus" - Release amd64 (20170412)
RelatedPackageVersions: apport-noui N/A
SourcePackage: whoopsie
UpgradeStatus: Upgraded to artful on 2017-08-22 (37 days ago)

Related branches

Brian Murray (brian-murray) wrote :

I was able to recreate this but had to move through different options in the Settings control panel to trigger it e.g. switch from something back to Privacy. Eventually, switch to the Privacy panel would start the constant reloading. However, as soon as I closed the Settings control panel whoopise quit restarting.

Does closing the control panel stop whoopsie from acting crazy?

Changed in whoopsie (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
tags: added: rls-aa-incoming
James Henstridge (jamesh) wrote :

This is definitely a gnome-control-center bug rather than whoopsie. I can reproduce it like so:

 1. open gnome-control-center, and select the privacy panel.
 2. ensure that problem reporting is turned on.
 3. wait for whoopsie-preferences to exit on timeout (or manually kill it).

I then see traffic like the following on the system bus:

    method call time=1507286449.661622 sender=:1.325 -> destination=:1.336 serial=96 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean false
    method call time=1507286449.918969 sender=:1.325 -> destination=:1.336 serial=97 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean true
    method call time=1507286450.216068 sender=:1.325 -> destination=:1.336 serial=98 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean false
    method call time=1507286450.529908 sender=:1.325 -> destination=:1.336 serial=99 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean true
    ...

which continues until I kill gnome-control-center. Whoopsie relaunching is a direct consequence of these D-Bus method calls coming from gnome-control-center.

It looks like the logic controlling the GtkSwitch gets into a loop when whoopsie-preferences stops. The D-Bus method calls are synchronous, so this also ends up locking the UI. I'll have a look into this properly next week.

Changed in gnome-control-center (Ubuntu):
assignee: nobody → James Henstridge (jamesh)
importance: Undecided → Medium
status: New → Triaged
Changed in whoopsie (Ubuntu):
status: Triaged → Invalid
James Henstridge (jamesh) wrote :

So I think I've got things sorted out by (a) switching to call SetReportCrashes async to avoid blocking the UI, and (b) not calling SetReportCrashes if we're asked to set it to the current (cached) value of the property.

I've noticed that if whoopsie-preferences exits while the privacy panel is open, I get a bit of a bounce when toggling the switch next. This seems to be due to whoopsie-preferences sending out a stray change notification signal on start up:

    method call time=1507538340.672978 sender=:1.1499 -> destination=com.ubuntu.WhoopsiePreferences serial=30 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean false
    signal time=1507538340.756225 sender=:1.1507 -> destination=(null destination) serial=9 path=/com/ubuntu/WhoopsiePreferences; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
       string "com.ubuntu.WhoopsiePreferences"
       array [
          dict entry(
             string "ReportMetrics"
             variant boolean true
          )
          dict entry(
             string "ReportCrashes"
             variant boolean true
          )
       ]
       array [
       ]
    method call time=1507538340.756590 sender=:1.1499 -> destination=:1.1507 serial=31 path=/com/ubuntu/WhoopsiePreferences; interface=org.freedesktop.DBus.Properties; member=GetAll
       string "com.ubuntu.WhoopsiePreferences"
    method call time=1507538340.757395 sender=:1.1499 -> destination=com.ubuntu.WhoopsiePreferences serial=32 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean true
    signal time=1507538341.034321 sender=:1.1507 -> destination=(null destination) serial=14 path=/com/ubuntu/WhoopsiePreferences; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
       string "com.ubuntu.WhoopsiePreferences"
       array [
          dict entry(
             string "ReportCrashes"
             variant boolean false
          )
       ]
       array [
       ]
    method call time=1507538341.035076 sender=:1.1499 -> destination=:1.1507 serial=33 path=/com/ubuntu/WhoopsiePreferences; interface=com.ubuntu.WhoopsiePreferences; member=SetReportCrashes
       boolean false

So essentially whoopsie-preferences is sending out an unsolicited PropertiesChanged signal on startup with the initial values before processing the SetReportCrashes method call. Then gnome-control-center responds by trying to match the switch state leading to the bounce.

So I guess I'll have to dive into the whoopsie-preferences code to see if I can silence the stray signal.

Changed in whoopsie-preferences (Ubuntu):
status: New → Triaged
importance: Undecided → High
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package whoopsie-preferences - 0.19

---------------
whoopsie-preferences (0.19) artful; urgency=medium

  * Don't export object on the bus until it has been fully constructed.
    (LP: #1720331)

 -- James Henstridge <email address hidden> Wed, 11 Oct 2017 18:20:35 +0800

Changed in whoopsie-preferences (Ubuntu):
status: Triaged → Fix Released
James Henstridge (jamesh) wrote :

Changing the gnome-control-center task to low priority, since the restart loop is gone with the new whoopsie-preferences that has landed in the archive.

The gnome-control-center change is nice, but I don't think it is critical to releasing 17.10 any more.

Changed in gnome-control-center (Ubuntu):
importance: Medium → Low
Changed in whoopsie-preferences (Ubuntu):
assignee: nobody → James Henstridge (jamesh)
tags: added: rls-bb-incoming
removed: rls-aa-incoming
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gnome-control-center - 1:3.26.1-0ubuntu6

---------------
gnome-control-center (1:3.26.1-0ubuntu6) bionic; urgency=medium

  [ James Henstridge ]
  * Modify privacy-panel-whoopsie.patch:
    - use an asynchronous D-Bus call when toggling crash reporting, and
      avoid calling SetReportCrashes when setting to the current value.
      (LP: #1720331)

  [ Jeremy Bicha ]
  * Modify ubuntu-gnome-version.patch:
    - Use Ubuntu's PRETTY_NAME instead of NAME from /etc/os-release.
      This is needed for the version number in About to end up as
      something like "Ubuntu 18.04.1 LTS" instead of just "Ubuntu 18.04".

 -- James Henstridge <email address hidden> Fri, 27 Oct 2017 11:05:31 -0400

Changed in gnome-control-center (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers