distcc doesn't report enough information via avahi
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
distcc (Debian) |
New
|
Unknown
|
|||
distcc (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: distcc
Without avahi you would normally set DISTCC_HOSTS to tell distcc how many jobs to send to each server, for example:
DISTCC_
The result being of course that server1 gets sent 8 jobs, server2 gets sent 4 jobs and so on. localhost defaults to 2 so that it has enough cycles spare to continue sending out jobs.
With avahi all distcc is aware of is which hosts are ready to receive jobs, and continues to send jobs until all n slots are filled according to make -jn. distcc itself has a JOBS variable to tell it how many jobs to accept, but the sender doesn't receive any of this information and so continuously gets sentnew jobs, and jobs can be sat in the SEND stage waiting for a server to accept it.
It also means that all servers are treated equally, including localhost (which doesn't use localhost, it uses its external/LAN IP address).
So, in summary, distcc needs to receive information from the servers on how many jobs each server can accept.
Changed in distcc (Ubuntu): | |
status: | New → Confirmed |
Changed in distcc (Debian): | |
status: | Unknown → New |
This is a sample ~/.distcc/ zeroconfi/ hosts
192.168.0.1:3632/4
192.168.0.15:3632/4
192.168.0.5:3632/8
Avahi announces how many processors each machine has and distcc simply multiplies that number by four.