chroot and hostname resolution problem [was : Re: [syslog-ng]centralized

Guillaume LACHENAL glachenal@on-x.com
Wed, 6 Nov 2002 13:48:31 +0100


Gregor Binder wrote :

> Hi,
>
> > > doing 'strace /etc/init.d/syslog-ng start', I can't find something 
> > > strange,
>
> I don't know about Linux/strace, but on most systems, you would have
> to use an option to the tracing utility to trace calls of child

-- man strace --

       -f          Trace child processes as they are  created  by
                   currently  traced processes as a result of the
                   fork(2)  system  call.
-- man strace --

> processes. Looks to me like you are tracing the shell process only.
> 
> Try to run the syslog-ng BINARY from strace, and look for problems
> like Ed suggested.

8254  open("/lib/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file 
or directory)
8254  open("/lib/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)

and I suppose those libs are needed by the resolver ...

Why 'ldd syslog-ng' does not reported this two files ?
(nor ldd on the libs returned by the previous commands)

How could I 'guessed' that I need to copy this files into the jail ?

> 
> > > Is there someone who is running a chrooted syslog-ng running under a
> > > non root user as a log collector without any (hostname resolution) 
problem 
> > > ?
> > I am - but I have "use_dns(no)" in my config.
> 
> Same here. I don't see any technical reason why this wouldn't work,
> unless you are missing resolv libraries (e.g. on Solaris) or
> supplementary configuration files in the jail.
> 
> Gregor.

Now my syslog-ng is resolving almost as I want :

Althougt my $JAIL/etc/nsswitch.conf contains "hosts dns",
hostnames are only resolved if they are in $JAIL/etc/hosts !
Amazing ...

I'll continue debugging, I progress ;-)