[IRCServices Coding] Bug Report for Services 5.0 alpha 12

Todd Punderson todd at doonga.net
Sun Jan 13 23:48:59 PST 2002


Hello,
	I've been playing with the alpha version on a very small irc
server I run. I ran into this problem after doing:
nickserv forbid q
nickserv forbid w
nickserv forbid x
operserv update
...segfaults

After the segfault, the lock file is left in the database directory, the
nick.db is 0 bytes and nick.db.save exists as the version before the
forbids. I can reproduce this error over and over... This also happened
in version alpha 11. I have included a chunk of the services.log entry
and the gdb output. If you need any more information, I'll try to
accommodate. I read through everything I could find and it didn't look
like anyone reported this yet, so hopefully this will help! BTW, this
isn't a complaint, just a report. :)
Thanks!
Todd

Uname -a  -
FreeBSD todd-server.doonga.net 4.5-PRERELEASE FreeBSD 4.5-PRERELEASE #7:
Sat Dec 22 14:30:34 EST 2001
todd at todd-server.doonga.net:/usr/obj/usr/src/sys/SMPKERNEL  i386

Services.log -
[Jan 14 02:32:32 2002] nickserv/main: Doonga!Doonga at DoongaNET set FORBID
for nick q
[Jan 14 02:32:34 2002] nickserv/main: Doonga!Doonga at DoongaNET set FORBID
for nick w
[Jan 14 02:32:36 2002] nickserv/main: Doonga!Doonga at DoongaNET set FORBID
for nick x
[Jan 14 02:32:40 2002] operserv/main: Doonga: update
[Jan 14 02:32:40 2002] database/version4: nick q has no NickGroupInfo,
setting password to nick

GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-unknown-freebsd"...
Core was generated by `services'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libc.so.4...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/protocol/bahamut.so.
..done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/database/version4.so
...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/mail/main.so...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/mail/smtp.so...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/operserv/main.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/operserv/akill.so...
done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/operserv/news.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/operserv/sessions.so
...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/operserv/sline.so...
done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/nickserv/main.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/nickserv/access.so..
.done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/nickserv/link.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/nickserv/mail-auth.s
o...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/nickserv/sendpass.so
...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/chanserv/main.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/chanserv/access-leve
ls.so...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/chanserv/sendpass.so
...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/memoserv/main.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/memoserv/forward.so.
..done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/memoserv/ignore.so..
.done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/statserv/main.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/misc/helpserv.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/httpd/main.so...done
.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/httpd/auth-ip.so...d
one.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/httpd/auth-password.
so...done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/httpd/dbaccess.so...
done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/httpd/redirect.so...
done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/misc/xml-export.so..
.done.
Reading symbols from
/usr/home/todd/irc/ircservices/lib/services/modules/misc/xml-import.so..
.done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x2811f4db in sync_nick_db (dbname=0x813d940 "nick.db") at
version4.c:550
550             if (irc_stricmp(ni->nick, ngi->nicks[ngi->mainnick]) !=
0) {