Comment 4 for bug 959195

Revision history for this message
Lars Karlitski (larsu) wrote :

This was really indicator-printers fault (aka "my fault"). I have some excuses for this, but I'm sure nobody wants to hear them ;)

The problem is, that indicator-printers-service creates cups subscriptions on startup to get dbus notifications to stuff like "somebody is printing something" or "a printer has run out of toner". It correctly cancels those subscriptions when it is terminated. However, apparently indicators aren't terminated gracefully most of the time, so lots of stray subscriptions were left over. CUPS creates a process for each subscription, which are all those processes that you noticed.

I've fixed indicator-printers to create subscriptions with a timeout, which it renews every 15 minutes. If it dies, the subscription will be canceled by cups automatically. This is much more sensible than what I had before.

If you don't have any other subscriptions to cups (email, rss), you can get rid of all those processes by deleting it's subscriptions.conf and cache:

  sudo stop cups
  sudo rm /etc/cups/subscriptions.conf
  sudo rm -r /var/cache/cups
  sudo start cups

Thanks *a lot* for making me aware of this, and sorry for the inconvenience.