On Mon, Apr 23, 2007 at 08:55:30AM -0700, Howard Chu wrote:
May be related to ITS#4841. Perhaps the thread stack is being
overrun,
you might try recompiling libldap_r with a larger thread stack size.
(LDAP_PVT_THREAD_STACK_SIZE)
Dmitriy Kirhlarov wrote:
>Hi, list.
>
>I'm using openldap-server-2.3.35 on FreeBSD 6.2-STABLE (Feb 19).
>I have reproduceble crash of slapd on this host. But I can't reproduce
>it on other server (FreeBSD 6.1-STABLE Aug 2).
>Database is fine (I dump and restore it), changing thread library
>doesn't help too.
Hi Howard,
Dmitriy followed your recommendations and rebuilt the openldap-server-2.3.35
port with the following variables set:
LDAP_PVT_THREAD_STACK_SIZE=268435456
WITH_DEBUG=yes
STRIP=""
He sent me more gdb output (bellow). Also, I have a test case which I use to
reproduce the crash (attached). Hope this will shed more light on the problem.
(gdb) bt
#0 0x2837f537 in pthread_testcancel () from /lib/libpthread.so.2
#1 0x2836e89a in sigaction () from /lib/libpthread.so.2
#2 0x2836888d in pthread_kill () from /lib/libpthread.so.2
#3 0x28368256 in raise () from /lib/libpthread.so.2
#4 0x28442e34 in abort () from /lib/libc.so.6
#5 0x2841f060 in __assert () from /lib/libc.so.6
#6 0x080aad9e in entry_schema_check (op=0xcecfa0c0, e=0xacbfac0, oldattrs=0x0, manage=0,
text=0xcecfa094, textbuf=0xcecf9f10 "╓'8(", textlen=256) at
schema_check.c:87
#7 0x286908a3 in bdb_add (op=0xcecfa0c0, rs=0xcecfa080) at add.c:63
#8 0x080ec0b5 in accesslog_response (op=0x8279400, rs=0xcecfad90) at accesslog.c:1175
#9 0x080db272 in over_back_response (op=0x8279400, rs=0xcecfad90) at backover.c:236
#10 0x08080a75 in send_ldap_response (op=0x8279400, rs=0xcecfad90) at result.c:303
#11 0x080818ac in slap_send_ldap_result (op=0x8279400, rs=0xcecfad90) at result.c:574
#12 0x08113e35 in unique_modify (op=0x8279400, rs=0xcecfad90) at unique.c:490
#13 0x080db309 in overlay_op_walk (op=0x8279400, rs=0xcecfad90, which=op_modify,
oi=0x8214f00, on=0x8216100) at backover.c:498
#14 0x080db543 in over_op_func (op=0x8279400, rs=0xcecfad90, which=op_modify) at
backover.c:560
#15 0x080db650 in over_op_modify (op=0x8279400, rs=0xcecfad90) at backover.c:594
#16 0x0808b0c6 in fe_op_modify (op=0x8279400, rs=0xcecfad90) at modify.c:395
#17 0x0808a33e in do_modify (op=0x8279400, rs=0xcecfad90) at modify.c:200
#18 0x0806fb84 in connection_operation (ctx=0xcecfae20, arg_v=0x8279400) at
connection.c:1133
#19 0x281b36ad in ldap_int_thread_pool_wrapper () from /usr/local/lib/libldap_r-2.3.so.2
#20 0x283703a5 in pthread_create () from /lib/libpthread.so.2
#21 0x2842e3df in _ctx_start () from /lib/libc.so.6
(gdb) info threads
7 Thread 0x818b000 (sleeping) 0x28377f9b in pthread_mutexattr_init () from
/lib/libpthread.so.2
6 Thread 0x8267400 (LWP 100039) 0x2837f4f7 in pthread_testcancel () from
/lib/libpthread.so.2
5 Thread 0x8267c00 (runnable) 0x2844658b in select () from /lib/libc.so.6
4 Thread 0x8267e00 (sleeping) 0x28377f9b in pthread_mutexattr_init () from
/lib/libpthread.so.2
* 3 Thread 0x8279000 (LWP 100113) 0x2837f537 in pthread_testcancel () from
/lib/libpthread.so.2
2 Thread 0x8279200 (sleeping) 0x28377f9b in pthread_mutexattr_init () from
/lib/libpthread.so.2
1 Thread 0xacc2a00 (sleeping) 0x28377f9b in pthread_mutexattr_init () from
/lib/libpthread.so.2
(gdb) frame 6
#6 0x080aad9e in entry_schema_check (op=0xcecfa0c0, e=0xacbfac0, oldattrs=0x0, manage=0,
text=0xcecfa094, textbuf=0xcecf9f10 "╓'8(", textlen=256) at
schema_check.c:87
87 schema_check.c: No such file or directory.
in schema_check.c
(gdb) p *a
$1 = {a_desc = 0x81dad20, a_vals = 0xacb2940, a_nvals = 0xacb2940, a_next = 0xaca0840,
a_flags = 0}
(gdb) p a->a_vals[0].bv_val
$2 = 0x0
(gdb) p a->a_vals[0]
$3 = {bv_len = 0, bv_val = 0x0}
--
Timur Izhbulatov
OILspace, 26 Leninskaya sloboda, bld. 2, 2nd floor, 115280 Moscow, Russia
P:+7 495 105 7245 + ext.205 F:+7 495 105 7246 E:TimurIzhbulatov@oilspace.com
Building Successful Supply Chains - One Solution At A Time.
www.oilspace.com