Comment 18 for bug 1059286

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have found a fix on the Avahi upstream mailing list:

http://lists.freedesktop.org/archives/avahi/2012-September/002188.html

I have rebuilt the package with this patch applied and the problem went away.

Citing the posting:

From: "Lee, Chun-Yi" <jlee at suse.com>

When we tested put a lot of airprint service files(have 45 to 60 flies), found there have cpu loadinghigh problem when start avahi-daemon with those service files.

After traced source code, there have problem in probe-sched.c::elapse_callback causes doesn't have any probe job set to DONE so the daemon unlimited send out DNS package.
The root cause is when compare with the free package space in packet_add_probe_query before attach job key, the free package space doesn't include any record data that will attached after all keys attached. This defect causes whole DNS package is filled by job key, but doesn't remain enough space for any rdata. Then, that means have no job set to DONE.

This patch add a new res_size member to AvahiDnsPacket, it used to sum the reserve size for record data the will attached after all keys attached. It can avoid keys consume whole size until p->size larger then p->max_size.