Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
distcc (dcc_connect_by_name_real) failed to resolve hostname
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Tue Oct 10, 2017 4:40 am    Post subject: distcc (dcc_connect_by_name_real) failed to resolve hostname Reply with quote

I am wondering if someone could help explain the error. Distcc I thought had several options for using addressing. Why is this one option failing?

Code:
distcc[3755] (dcc_connect_by_name_real) ERROR: failed to resolve host '192.168.1.12= port 3632: Temporary failure in name resolution
distcc[3755] Warning: failed to distribute arch/x86/boot/a20.c to '192.168.1.12=, running locally instead


I am attempting to use these instructions to compile kernel: https://forums.gentoo.org/viewtopic-t-25986-start-0.html

EDIT: So as for the additional apostrophe (') before the address, I think that was due to the entering of it along with DISTCC_HOST=

At least by removing that though did not solve the problem, which means these instructions (which are about 10 years Old) for changes to the Makefile in the kernel source directory are no longer current. I am open to suggestions and would like to try compiling the linux kernel with use of distcc at some point, in the same manner, that is preferring to use changes to the kernel Makefile,

Anything similar enough to that solution would be awesome. thanks for the help, and I could also rehash that thread!
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Tue Oct 10, 2017 10:08 am    Post subject: Reply with quote

Dunno what you did, either in kernel makefile or distcc/hosts but twice time in your output it not only show the extra ' but also an extra = after the IP address
And of course, it couldn't resolve it.

To set how distcc works outside portage, you have /etc/distcc/hosts to setup hosts and /etc/env.d/02distcc to setup distcc parameters.
You can use make CC=distcc -jX to use distcc with your kernel, no need to set hosts in the kernel make file
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21624

PostPosted: Wed Oct 11, 2017 1:01 am    Post subject: Reply with quote

Please show us how you configured the list of hosts to which distcc should distribute.
Back to top
View user's profile Send private message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3134

PostPosted: Wed Oct 11, 2017 7:58 pm    Post subject: Reply with quote

Quote:
failed to resolve host '192.168.1.12= port 3632: Temporary failure in name resolution

I guess it's a typo in your config. There is no such host "192.168.1.12=".
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Thu Oct 12, 2017 12:02 am    Post subject: Reply with quote

Not a typo in the Makefile, I've checked numerous times. It is somewhat puzzling, and I'm confused...going to try with krinn solution to make CC=distcc -jN and see if that works.

Hu, I don't know if I mentioned it bust distcc works perfectly ok otherwise. The hosts are working to distribute other packages, e.g. through portage or whatever.
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Thu Oct 12, 2017 1:06 am    Post subject: Reply with quote

I removed all changes to Makefile, those hostname errors are gone. Compiling the kernel with the mentioned settings is working OK, but for whatever reason hardly anything gets distributed to the other machine. Most likely something to do with the size of the code though, so I guess in theory it works now. Just trying to find a better way to compile the kernel than locally by using the other PC's faster processor.

Update: Nevermind, I see there are some portions the kernel is processing the files into .o files automatically and not distributing those For example, compiling the kernel with CC=distcc, sends just a handful of files for compilation to the host machines (less than 10 files..which out of 100's of files isn't substantial) I want to save time so I think running the entire compilation on the host machine (using ftp or scp to copy the file there and then run make from there).


Last edited by LIsLinuxIsSogood on Thu Oct 12, 2017 1:28 am; edited 1 time in total
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Thu Oct 12, 2017 3:15 am    Post subject: Reply with quote

With distcc

real 25m54.869s
user 27m50.162s
sys 1m56.539s

without distcc

real 26m23.540s
user 28m8.482s
sys 1m54.629s


The small difference amounts to probably a dozen or so files that were compiled on the host machine.

Does anyone know why the kernel won't make use of distcc, is it because there are numerous other compiles or compiling procedures (for C language stuff)?

EDIT: With -j4 reduced real time on local compile to
real 11m49.024s
user 41m48.988s
sys 2m43.052s


Last edited by LIsLinuxIsSogood on Thu Oct 12, 2017 3:45 am; edited 1 time in total
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Thu Oct 12, 2017 3:43 am    Post subject: Reply with quote

Here is my hosts file for distcc:


Code:
Machine_West% cat /etc/distcc/hosts
playby/4


Why would using CC=distcc be directing most of the compiles to local machine. I know that distcc has a setting to fail on localhost, but don't understand the setting exactly.

There are a couple of settings I think could help from the distcc man page...doesn't actually describe implementing it though! Am I correct to assume that setting the variable to 1 is on and 0 if off, similar to other variables in the program?

DISTCC_FALLBACK
By default distcc will compile locally if it fails to distribute a job to the intended machine, or if no host list can be found. If this variable is set to 0 then fallbacks are disabled and those compilations will simply fail. Note that this does not affect jobs which must always be local such as linking.

DISTCC_SKIP_LOCAL_RETRY
If set, when a remote compile fails, distcc will no longer try to recompile that file locally.

Me environment file:
Code:
Machine_West% cat /etc/env.d/02distcc
# This file is managed by distcc-config; use it to change these settings.
# DISTCC_LOG and DISTCC_DIR should not be set.
DISTCC_VERBOSE="0"
DISTCC_FALLBACK="0"
DISTCC_SAVE_TEMPS="0"
DISTCC_TCP_CORK=""
DISTCC_SSH=""
UNCACHED_ERR_FD=""
DISTCC_ENABLE_DISCREPANCY_EMAIL=""
DCC_EMAILLOG_WHOM_TO_BLAME=""
DISTCC_DIR="/var/tmp/portage/.distcc/"
DISTCC_LOG=/var/log/distcc_log
DISTCC_SKIP_LOCAL_RETRY="1"

Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1179

PostPosted: Thu Oct 12, 2017 3:55 am    Post subject: Reply with quote

Here's another debug set of info when compiling kernel...with distcc

Oct 11 20:50:03 [distccd] (dcc_listen_by_addr) listening on 192.168.1.5:3632
Oct 11 20:50:03 [distccd] (dcc_standalone_server) 4 CPUs online on this server
Oct 11 20:50:03 [distccd] (dcc_standalone_server) allowing up to 6 active jobs
Oct 11 20:50:03 [distccd] (dcc_log_daemon_started) preforking daemon started (3.2rc1 x86_64-pc-linux-gnu, built Sep 5 2017 07:54:44)

So it looks like everything working, but almost every aspect of the kernel gets compiled locally regardless!
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Oct 12, 2017 11:48 am    Post subject: Reply with quote

It's common to have options set with 0 disable, 1 enable, those just mean false/true
DISTCC_FALLBACK and DISTCC_SKIP_LOCAL_RETRY are similar, both handle how distcc react to a problem and if distcc bypass the problem by building the file on localhost or not.

DISTCC_FALLBACK:
For me it should be on, distcc fail to distribute to host Z, and rebuild the job locally.
People who want this off are distcc devs for debugging, or users that use two hosts, and one host is a critical helper. ie: people using a big cpu to help their arm building a package, if "big cpu" host cannot take the job, something is wrong, and it might be real better to just stop building and fix the issue than letting the arm cpu continue to build everything on its own.
DISTCC_SKIP_LOCAL_RETRY:
It should just always be off: if the host goes offline, it will fail to compile and distcc will build the file locally, because host is now offline, next attempt will be handle by DISTCC_FALLBACK (because next job will be attempt to be distribute to it).
But it might be a great help to someone using really a lot of hosts that this option is on, in order to help you identify a problem in the farm.

For me best settings that should be use are DISTCC_FALLBACK=1 DISTCC_SKIP_LOCAL_RETRY=0 (i think those are default settings in gentoo).
If you don't have a farm of hosts and use one host to help another one that is really really weak, DISTCC_FALLBACK=0 looks better.


For performance, because you use distcc to build a kernel, you will have better performance from building the kernel directly on the fast host instead of using distcc.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum