I had a little bit today to fiddle with this, and I'm more confused than
ever - the system I'm using is a RedHat AS 3.0, on the x86-64
architecture.
When I run the 'gmond' (or gmetad) binary on the system under the
default kernel, it works fine... however, as soon as I recompile a kernel,
these two services don't work. Everything else is fine, though - be it
SSHD, HTTPd, whatever. Just these two.
.. Playing around a bit, it seems that the problem it's having in gmond
is with the pthreads calls:
for ( i = 0 ; i < gmond_config.mcast_threads; i++ )
{
thread_create(&tid, &attr, mcast_listen_thread, (void *)mcast_listen_barrier);
}
It's in here that the code segfaults (under MY kernels, at any rate!),
and considering that it only happens in my kernels, I'm guessing I'm doing
something truly idiotic in the kernel configuration. Hopefully tomorrow
I'll get a chance to thoroughly check it out.
For the record, the error messages look like:
kernel: gmond[3684]: segfault at 0000000000000000 rip 0000000000000000 rsp
0000000040fff7f8 error 14
.. and 'error 14' is an EFAULT error. I didn't really get much chance
to do any real debugging today, but I'm going to take a closer look at my
kernel configs and go from there.
(Anybody know why, with RH AS 3.0, if you take a kernel-config from
their 'configs' directory under the source, and try to compile the kernel,
it fails miserably?!)
Again, thanks for the help .. I imagine I'll write tomorrow to say what
it was, provided I get the chance to figure it out. Hopefully it won't be
something too mind-numbing. ;)
Cheers,
- Brian