On Fri, Jun 06, 2008 at 02:52:49PM -0700, Steve Langasek wrote:

> > I can reproduce it by restarting the slapd it is connected to. The
> > Ubuntu launchpad entry refers to that fix 
> 
> > openldap2.3 (2.4.9-1ubuntu1) intrepid; urgency=low
> 
> >   * Merge from debian unstable, remaining changes:
> > [...]
> >     - debian/patches/fix-assertion-io.patch: Fixes ber_flush2 assertion.
> >       (LP: #215904)
> 
> Ah, ok, that's a bit confusing... I didn't realize that this merge
> introduced new patches that weren't in intrepid previously.
> 
> I'll work on extracting this patch and getting it merged into Debian,
> thanks.

For the record, applying the patch from the Ubuntu package (attached) to
the Debian 2.4.9-1 sources and recompiling fixed my issues, I don't see
any asserts anymore when shutting down the primary LDAP server.

Bernhard
diff -Naur openldap-2.4.7.orig/libraries/libldap/request.c openldap-2.4.7/libraries/libldap/request.c
--- openldap-2.4.7.orig/libraries/libldap/request.c	2007-08-31 19:13:56.000000000 -0400
+++ openldap-2.4.7/libraries/libldap/request.c	2008-05-23 05:47:40.000000000 -0400
@@ -631,6 +631,9 @@
 				} else {
 				    prevlc->lconn_next = tmplc->lconn_next;
 				}
+				if (ld->ld_defconn == lc) {
+					ld->ld_defconn = NULL;
+				}
 				break;
 			}
 			prevlc = tmplc;
@@ -675,6 +678,8 @@
 
 		if ( lc->lconn_sb != ld->ld_sb ) {
 			ber_sockbuf_free( lc->lconn_sb );
+		} else {
+			ber_int_sb_close( lc->lconn_sb );
 		}
 
 		if ( lc->lconn_rebind_queue != NULL) {

Reply via email to