[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: bus fault under load



For curiosity sake, I ran that same test on a (slow) P75 with FreeBSD 3.0 at
home.
Unfortunately, it's a much slower machine, so instead of .015s per request,
i'm got .334s per request :(

Even so, 10 * 3 requests per second (or 100 * 10 every 33 seconds = 30.3
requests per second.
That's pretty damn good :)  When using db2 instead of gdbm the performance
is about 2 times better, it seems.

If I understood more about your thread library, (or threads in general), i'd
be able to help debug this threading problem a bit better...  At least it
appears to be consistent.

hmmm.. 700 (7000) requests later it's still going.
1400 requests (14000) .. bang.
Feb  2 15:43:10 slinky /kernel: pid 4732 (slapd), uid 0: exited on signal 11
(core dumped)

openldap source version 1.1.4-Release.

uname: FreeBSD slinky.thetoybox.org 3.0-RELEASE FreeBSD 3.0-RELEASE #2: Thu
Feb 18 15:35:46 EST 1999
root@slinky.thetoybox.org:/usr/src/sys/compile/Toybox  i386

attempting to find the core
...not in /var, /var/tmp, /usr/local/etc/openldap, ~rhooper, ~root...
...Where'd it go?
..."sh -x /etc/periodic/weekly/310.locate"
...locate slapd.core
/slapd.core
...Oh, it's in /.  I'd have never thought to look there!
DOH!

Perhaps a chdir("/usr/local/etc/openldap") or similar would make sense?

root@slinky:/# gdb /usr/local/libexec/slapd  slapd.core
GDB is free software and you are welcome to 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.
GDB 4.16 (i386-unknown-freebsd),
Copyright 1996 Free Software Foundation, Inc...
Core was generated by `slapd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libcrypt.so.2...done.
Reading symbols from /usr/lib/libutil.so.2...done.
Reading symbols from /usr/lib/libc_r.so.3...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x804ba23 in connection_activity (conn=0x80a3f9c) at connection.c:212
212             pthread_detach( arg->co_op->o_tid );
(gdb) where
#0  0x804ba23 in connection_activity (conn=0x80a3f9c) at connection.c:212
#1  0x804b126 in slapd_daemon (port=0x185) at daemon.c:365
#2  0x280a938e in _thread_start ()

(gdb) print arg
$1 = (struct co_arg *) 0x83ab060
(gdb) print *arg
$2 = {co_conn = 0x6c69616d, co_op = 0x554d4200}
(gdb) print *arg->co_op
Cannot access memory at address 0x554d4200.


(Checking core in / on my sparc)
root@www4:tests# ls -al /core
-rw-------   1 root     56246260 Feb  2 12:35 /core
root@www4:tests# file /core
/core:          ELF 32-bit MSB core file SPARC Version 1, from 'slapd'

root@www4:ldap# /opt/GNUgdb/bin/gdb /usr/local/libexec/slapd /core
GNU gdb 4.17
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 "sparc-sun-solaris2.7"...
Core was generated by `/usr/local/libexec/slapd'.
Program terminated with signal 9, Killed.
Reading symbols from /usr/lib/libresolv.so.2...done.
Reading symbols from /usr/lib/libgen.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libpthread.so.1...done.
Reading symbols from /usr/lib/librt.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/lib/libaio.so.1...done.
Reading symbols from /usr/lib/libthread.so.1...done.
#0  0x1e42c in connection_activity (conn=0xa1c08) at connection.c:212
connection.c:212: No such file or directory.
(gdb) where
#0  0x1e42c in connection_activity (conn=0xa1c08) at connection.c:212
#1  0x1d8dc in slapd_daemon (port=0x79800) at daemon.c:365
(gdb) print arg
$1 = (struct co_arg *) 0x357a0a8
(gdb) print *arg
$2 = {co_conn = 0x3580880, co_op = 0x4a31}
(gdb) print *arg->co_op
Cannot access memory at address 0x4a31.

--
Roy Hooper
Sr. Systems Administrator
Cyberus Online Inc.
(613) 233-0068


> -----Original Message-----
> From: Kurt D. Zeilenga [mailto:Kurt@OpenLDAP.Org]
> Sent: Tuesday, February 02, 1999 2:50 PM
> To: Roy Hooper
> Cc: openldap-bugs@OpenLDAP.Org
> Subject: Re: bus fault under load
>
>
> At 02:31 PM 2/2/99 -0500, Roy Hooper wrote:
> >#0  0x1e42c in connection_activity (conn=0xa1888) at connection.c:212
> >212             pthread_detach( arg->co_op->o_tid );
>
> print arg
> print *arg
> print *arg->co_op
>
> thanks, Kurt
>