openldap-server exit on signal 6 on 11.1 (and not in 10.3)

Dimitry Andric dim at FreeBSD.org
Fri Feb 9 20:00:34 UTC 2018


On 9 Feb 2018, at 09:33, joris dedieu <joris.dedieu at gmail.com> wrote:
> 
> Dear porters,
> 
> While moving from 10.3 to 11.1, I get an issue on openldap execution.
> slapd dies (pid 29087 (slapd), uid 389: exited on signal 6) on some
> complex but reproducible operations.
> 
> We worked around this bug by returning less elements from the request.
> While my dear colleges are trying to write a script to reproduce the
> issue, I investigate system side.
> 
> 
> In /var/log/messages, I got slapd[4909]: stack overflow detected; terminated
> 
> The only trace I get
> 
> #0  0x0000000801f7a71a in kill () from /lib/libc.so.7
> #1  0x0000000801f7a6d0 in __stack_chk_fail () from /lib/libc.so.7
> #2  0x0000000801f7a640 in __stack_chk_fail () from /lib/libc.so.7
> #3  0x00000000004466e6 in do_modify ()
> #4  0x00000000004308d5 in connection_assign_nextid ()
> #5  0x00000000004300dd in connection_read_activate ()
> #6  0x0000000800956ffa in ldap_pvt_thread_pool_submit () from
> /usr/local/lib/libldap_r-2.4.so.2
> #7  0x0000000801c71bc5 in pthread_create () from /lib/libthr.so.3
> #8  0x0000000000000000 in ?? ()
> 
> I suspect it's relative to -fstack-protector-strong  which is the
> default since FreeBSD 11.0. Do you think I should rebuild all the
> world this opion ?
> 
> I also thought on fdatasync
> 
> .if ${OSVERSION} < 1101000
> CFLAGS+=                -DMDB_DSYNC=O_SYNC -Dfdatasync=fsync
> .endif
> 
> I'm currently investigating on this changes.
> 
> The issue disappear when slapd is compiled with debugging symbols
> (WITH_DEBUG=YES). As far as I understand, this only cause -g flag to
> be added to CFLAGS. Does WITH_DEBUG also disable some compiler
> optimization  ?

Yes, WITH_DEBUG unfortunately removes all -O options from the compiler
flags, making it sometimes hard to debug, if any crashes disappear. :)

Try applying the following patch to your ports tree, and rebuilding the port:

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk	(revision 461038)
+++ Mk/bsd.port.mk	(working copy)
@@ -1743,7 +1743,7 @@ MAKE_ENV+=	DONTSTRIP=yes
 STRIP_CMD=	${TRUE}
 .endif
 DEBUG_FLAGS?=	-g
-CFLAGS:=		${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS}
+CFLAGS:=		${CFLAGS} ${DEBUG_FLAGS}
 .if defined(INSTALL_TARGET)
 INSTALL_TARGET:=	${INSTALL_TARGET:S/^install-strip$/install/g}
 .endif

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 223 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20180209/bead390b/attachment.sig>


More information about the freebsd-ports mailing list