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

(ITS#4468) slapi initialized too late



Full_Name: Hallvard B Furuseth
Version: HEAD
OS: Linux
URL: 
Submission from: (NULL) (129.240.186.42)
Submitted by: hallvard


test017, test018, test019, test033, test043 and test045
call slapi_int_create_object_extensions() from connection_fake_init()
before slapi_over_config() has been called.

slapi_int_create_object_extensions() locks registered_extensions.mutex,
which is initialized in slapi_over_config()
(in the slapi_int_init_object_extensions() call).

Here is a work-around.  Probably not the best fix, but it works for me.
The patch is to connection_fake_init() and slapi_over_config().

--- connection.c	2 Apr 2006 17:54:25 -0000	1.357
+++ connection.c	2 Apr 2006 21:24:25 -0000
@@ -2292,4 +2292,5 @@
 
 #ifdef LDAP_SLAPI
+	slapi_over_config( NULL );
 	slapi_int_create_object_extensions( SLAPI_X_EXT_CONNECTION, conn );
 	slapi_int_create_object_extensions( SLAPI_X_EXT_OPERATION, op );
--- slapi/slapi_overlay.c	14 Feb 2006 08:20:50 -0000	1.40
+++ slapi/slapi_overlay.c	2 Apr 2006 21:24:25 -0000
@@ -929,4 +929,7 @@
 	}
 
+	if ( be == NULL )
+		return 0;
+
 	return overlay_config( be, SLAPI_OVERLAY_NAME );
 }

Traceback:

(gdb) bt
#5  0x0816efdd in ldap_pvt_thread_mutex_lock (mutex=0x830bc60) at
thr_debug.c:790
#6  0x0825e868 in slapi_int_create_object_extensions (objecttype=0,
object=0xbfffec3c) at slapi_ext.c:249
#7  0x08087156 in connection_fake_init (conn=0xbfffec3c, op=0xbfffea90,
ctx=0x8307760) at connection.c:2294
#8  0xb7d83647 in syncprov_db_open (be=0x833d3e0) at syncprov.c:2307
#9  0x080dddb1 in over_db_func (be=0x833d3e0, which=db_open) at backover.c:61
#10 0x080de152 in over_db_open (be=0x0) at backover.c:173
#11 0x080905a2 in backend_startup_one (be=0x833d3e0) at backend.c:212
#12 0x0809095c in backend_startup (be=0x833d3e0) at backend.c:301
#13 0x080b01db in slap_startup (be=0x0) at init.c:244
#14 0x0807135e in main (argc=8, argv=0xbfffef94) at main.c:888