I think this is connected to avahi, somehow. Everybody's backtraces seem to have avahi_entry_group_free() in them. People also can't kill the process without kill -9, which is consistent with it being inside a signal handler.
I can reproduce this by starting and stopping the vino daemon by clicking the "Allow other users to view your desktop" in the vino-preferences app. It consistently gets vino-server to peg a CPU.
However, if I first stop avahi:
service avahi-daemon stop
before doing this, I can repeatedly start and stop vino without it pegging a CPU. My naive conclusion from this is that server/vino-mdns.c's call to avahi_entry_group_free() is freezing, spinning and sucking up CPU, but *ONLY* when avahi is running. This happens both when trying to restart the daemon or exit. Here's the vino code. I _think_ this makes it an avahi bug.
I think this is connected to avahi, somehow. Everybody's backtraces seem to have avahi_entry_ group_free( ) in them. People also can't kill the process without kill -9, which is consistent with it being inside a signal handler.
I can reproduce this by starting and stopping the vino daemon by clicking the "Allow other users to view your desktop" in the vino-preferences app. It consistently gets vino-server to peg a CPU.
However, if I first stop avahi:
service avahi-daemon stop
before doing this, I can repeatedly start and stop vino without it pegging a CPU. My naive conclusion from this is that server/ vino-mdns. c's call to avahi_entry_ group_free( ) is freezing, spinning and sucking up CPU, but *ONLY* when avahi is running. This happens both when trying to restart the daemon or exit. Here's the vino code. I _think_ this makes it an avahi bug.
static void name);
vino_mdns_restart (void)
{
if (mdns_service_name != NULL)
g_free (mdns_service_
mdns_service_name = NULL;
if (mdns_entry_group != NULL) entry_group_ free (mdns_entry_group);
avahi_
mdns_entry_group = NULL;
if (mdns_client != NULL) client_ free (mdns_client);
avahi_
mdns_client = NULL;
vino_mdns_start (iface_name);
}