Search code examples
c++linuxmakefilefedoradistributed-computing

Cannot connect icecream (icecc) on Fedora


I can't manage to get an icecc daemon to connect to the local icecc-scheduler from any machine running Fedora 20.

I've had no issues setting this up on 5 different Ubuntu 14.04 machines, and each can run the scheduler with no issue. In fact, it appears to work out of the box with no additional config on Ubuntu - simple install and play.

In those cases on Ubuntu

sudo apt-get install icecc
sudo service iceccd start

And on one of the machines

sudo service icecc-scheduler start

Then simply setting the path and building like so

export PATH=/usr/lib/icecc/bin:$PATH
make -j16

This is all that is needed to get the distributed compile working on Ubuntu as far as I can see.

On Fedora installing and starting I use

sudo yum install icecream.x86_64
sudo systemctl start iceccd

And compiling with

export PATH=/usr/libexec/icecc/bin:$PATH
make -j16

This doesn't distribute the compile. The icemon utility on the scheduler does not show any evidence of the fedora machine either and running a status on the iceccd service gives this error:

Jul 21 09:44:08 Fedora20 iceccd[4642]: [4642] 09:44:08: scheduler not yet found.

So far the only thing I've tried that might have been the issue is opening up the ports that the readme provides by adding them to the Zones->Ports part of Firewall Configuration , but this hasn't helped.

Maybe there is something I need to do on the Ubuntu schedular and daemons? Has anyone else had any luck with setting up icecream on Fedora 20?


Solution

  • For other future devs who might come here from google -

    To get icecc working I edited the /usr/lib/systemd/system/icecc/iceccd-wrapper file by adding two arguments to the iceccd command.

    -s <schedular> -m <number of jobs>
    

    Then when running the following command

    sudo systemctl start iceccd 
    

    The daemon starts up and is seen by the scheduler.

    Remember the ports also need to be open!