On Tue, Aug 11, 2009 at 10:18 PM, James Hess <mysidia@gmail.com> wrote:
On Tue, Aug 11, 2009 at 12:43 PM, Allie K<alliekbean@gmail.com> wrote:
> This problem is driving me crazy, and I'm not quite sure what's wrong with
> the server. I'm running Bahamut 1.8.6 with ircservices 5.1.19. At random
> times, the ircd seems to just segfault, dumping core. I'm not really a
[..]
> only has a handful of users on it (maybe 5 at the most?) so it isn't under
> heavy load or anything. I'm running the server on 64-bit Ubuntu 9.04 under
> a Xen virtual machine (commercial VPS host). I didn't see a place to check
When you get a corefile, one of the easiest ways to take a look at it
is to have GDB (the GNU debugger) installed
then issue
#gdb -c /path/to/corefile /path/to/program
eg
# gdb -c core.23589 /usr/local/bin/ircd
You will get a (gdb) prompt, now you can ask gdb to give you a backtrace:
(gdb) bt full
If that's too many hundreds of pages long just "backtrace"
Use (gdb) quit
when done to exit gdb.
The output from a full backtrace may help identify the problem.
If you take a look at the output (and in particular the bottom and
top of the stack), or post it...
Note that it works best if you have provided "-ggdb" as a CFLAG,
and you do not compile with any strip options.
The output may also be hard to decipher if you compiled with heavy
optimizations beyond the simple -O option,
e.g. if the GCC options you used to compile the program contained -O2, -O3
Or one of those hundreds of elaborate -f* optimization options such
as "-fomit-frame-pointer -funroll-loops -finline-functions"
Your debugger may not be able to provide all that much information.
So if 'bt' from within gdb doesn't provide much, you may want to
tweak the CFLAGs settings
--
-J
I'd prefer not to provide the core itself because I know it contains some kinda private stuff. Here's the backtrace, though!
#0 check_userbanned (cptr=0x7fc81663fa28, yflags=672, nflags=0) at userban.c:286
iptmp = "75499876641970."
bl = (uBanEnt *) 0x33312e3037393134
#1 0x000000000043fe82 in add_connection (lptr=0xaf5ef0, fd=10) at s_bsd.c:1255
lin = {next = 0x0, value = {cptr = 0x1, chptr = 0x1, aconn = 0x1, banptr = 0x1, wptr = 0x1,
cp = 0x1 <Address 0x1 out of bounds>}, flags = 0}
acptr = (aClient *) 0x7fc81663fa28
addr = {sin_family = 2, sin_port = 59313, sin_addr = {s_addr = 3565568331}, sin_zero = "\000\000\000\000\000\000\000"}
len = 0
ban = <value optimized out>
#2 0x0000000000440fa6 in accept_connection (lptr=0xaf5ef0) at s_bsd.c:1535
addrlen = 16
host = "75499876641970.65499876641970.134499876641970.212499876641970\000\000\000"
newfd = 10
i = 1
addr = {sin_family = 2, sin_port = 59313, sin_addr = {s_addr = 3565568331}, sin_zero = "\000\000\000\000\000\000\000"}
#3 0x0000000000461cb5 in engine_read_message (delay=<value optimized out>) at socketengine_poll.c:138
rr = -2006877952
rw = 0
pfd = (struct pollfd *) 0x81eee8
nfds = 0
i = 1
fdflags = 1
fdtype = 10862928
fdvalue = (void *) 0xaf5ef0
cptr = (aClient *) 0x0
poll_fdarray = {{fd = 0, events = 25, revents = 0}, {fd = 3, events = 25, revents = 1}, {fd = 4, events = 25,
revents = 0}, {fd = 5, events = 25, revents = 0}, {fd = 6, events = 25, revents = 0}, {fd = 8, events = 25, revents = 0}, {
fd = 14, events = 25, revents = 0}, {fd = 7, events = 25, revents = 0}, {fd = 9, events = 25, revents = 0}, {fd = 10,
events = 29, revents = 0}, {fd = 10, events = 25, revents = 0}, {fd = 24, events = 29, revents = 0}, {fd = 25, events = 29,
revents = 25}, {fd = 17, events = 29, revents = 0}, {fd = 0, events = 0, revents = 0} <repeats 1010 times>}
#4 0x000000000041dfb9 in main (argc=<value optimized out>, argv=0x0) at ircd.c:1127
uid = 0
euid = 0
tmp = "/home/bahamut/ircd/.maxclients", '\0' <repeats 570
times>,
"\025öÑ\027È\177\000\000\000\000\000\000\000\000\000\000(\005ó\027È\177\000\000\rFº\026È\177\000\000\024\213Ñ\027È\177",
'\0' <repeats 66 times>, "\001", '\0' <repeats 151 times>,
"\025öÑ\027È\177\000\000\000\000\000\000\000\000\000\000Ètò\027È\177\000\000eûò\026È\177\000\000\024\213Ñ\027È\177",
'\0' <repeats 66 times>, "\001", '\0' <repeats 151 times>,
"\025öÑ\027È\177\000\000\000\000\000\000\000\000\000\000Ètò\027È\177\000\000ÔË(\027È\177\000\000\024\213Ñ\027È\177",
'\0' <repeats 66 times>...
mcsfp = <value optimized out>
conferr = <value optimized out>
So does that seem to contain any useful information? I think the configure is pretty much the default compile options aside from a prefix change, so there's probably not an additional level of debugosity added. I can recompile it and try again if nothing in that backtrace is helpful. Thanks very much for your help!
Allie