** Changed in: gnome-control-center (Ubuntu)
Status: Invalid => In Progress
** Description changed:
On stonking with gnome-control-center 1:51.0-1ubuntu1 and
whoopsie-preferences 23build4, the journal shows whoopsie-preferences
starting,
acquiring com.ubuntu.WhoopsiePreferences, then exiting cleanly, once a minute,
forever:
- systemd[1]: Started dbus-:[email protected].
- systemd[1]: dbus-:[email protected]:
Deactivated successfully.
- whoopsie-preferences[3607]: Acquired the name:
com.ubuntu.WhoopsiePreferences
+ systemd[1]: Started dbus-:[email protected].
+ systemd[1]: dbus-:[email protected]:
Deactivated successfully.
+ whoopsie-preferences[3607]: Acquired the name:
com.ubuntu.WhoopsiePreferences
It looks like a crash loop but is not: "Deactivated successfully" is a clean
exit, the @N suffix is the per-boot D-Bus activation serial. On my machine
this
- had been running for ~a day: roughly 1440 root process spawns per day, purely
- to keep a settings cache warm for a panel nobody has open.
-
- Two behaviours, each reasonable on its own, loop against each other:
-
- 1. whoopsie-preferences quits its main loop 60 s after its last activity
- (src/whoopsie-preferences.c:462, increase_shutdown_timeout() at :252).
- Deliberate: it should not idle-resident.
-
- 2. gnome-control-center's Ubuntu Telemetry page (the whoopsie support added by
- d/p/u/diagnostics-Add-Whoopsie-support.patch, carried over to
- cc-telemetry-page.c by the telemetry patch) connects a handler to the
- proxy's notify::g-name-owner. Whenever the name loses its owner it calls
- whoopsie_preferences_call_get_identifier() fire-and-forget. The comment in
- the patch says it outright: "Trigger the service to start again, as it has
- just been stopped by a timeout".
-
- So while any gnome-control-center process is alive - including the headless
- --gapplication-service instance with no window open - the pair ping-pongs:
- g-c-c starts the service, the service quits 60 s later, g-c-c starts it again.
-
- Evidence that g-c-c is the driver (SIGSTOP the resident
- gnome-control-center process): the next 60 s tick shows the service
- deactivating but no new activation; on SIGCONT an activation fires
- immediately, off the usual cadence. strace on a live whoopsie-preferences
- instance over its last 20 s of life shows zero received D-Bus messages, i.e.
- nothing ever actually talks to the service after activation.
-
- The whoopsie daemon itself is not involved: whoopsie.service is static and
- whoopsie.path disabled, so only whoopsie-preferences churns.
-
- Proposed fix, verified locally on stonking (patch attached, built and
- installed as 1:51.0-1ubuntu2+local):
-
- - create the whoopsie proxy with G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, so a
- page that is never shown activates nothing at construction time;
- - gate whoopsie_bus_owner_changed() on gtk_widget_get_mapped(): a headless
- service instance no longer re-activates anything, and when the owner
- appears while the page is shown, sync the row;
- - add a map handler: when the user actually opens the Telemetry page, sync
- the row if the service is owned, otherwise activate it explicitly via
- org.freedesktop.DBus.StartServiceByName (method calls are refused on
- unowned proxies created with DO_NOT_AUTO_START, so this must be explicit);
- - leave the combo row insensitive until the whoopsie state is actually
- known.
-
- After the fix: whoopsie-preferences is activated only while the Telemetry page
- is on screen (the visible page keeps reactivating it on its idle exits, which
- is the original keep-alive intent, bounded by visibility). A resident g-c-c
- with the page not mapped causes zero activations; verified with
- SIGSTOP/SIGCONT, a 2m15s observation window, and an overnight soak.
-
- Side note for the whoopsie-preferences side of this design: its idle exit
- fires while clients still hold proxies on the bus. Should whoopsie-preferences
- keep running while there are clients instead? That would make this class of
- reactivation loops moot, but it is a design question for the whoopsie
- maintainers rather than a patch I can propose here.
+ had been running for ~a day: roughly 1440 root process spawns per day, purely
to keep a settings cache warm for a panel nobody has open.
** Description changed:
On stonking with gnome-control-center 1:51.0-1ubuntu1 and
whoopsie-preferences 23build4, the journal shows whoopsie-preferences
starting,
acquiring com.ubuntu.WhoopsiePreferences, then exiting cleanly, once a minute,
forever:
systemd[1]: Started dbus-:[email protected].
systemd[1]: dbus-:[email protected]:
Deactivated successfully.
whoopsie-preferences[3607]: Acquired the name:
com.ubuntu.WhoopsiePreferences
It looks like a crash loop but is not: "Deactivated successfully" is a clean
exit, the @N suffix is the per-boot D-Bus activation serial. On my machine
this
had been running for ~a day: roughly 1440 root process spawns per day, purely
to keep a settings cache warm for a panel nobody has open.
+
+ The right way to fix this is to add a Hold/Release pattern to whoopsie-
+ preferences so that it can keep track of active clients.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167557
Title:
gnome-control-center re-activates whoopsie-preferences every 60 s
(journal noise, ~1440 root spawns/day)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/2167557/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs