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) {