Date: Mon, 30 Oct 2017 05:53:39 +0000 (UTC) From: Xin LI <delphij@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r453156 - in head/net/openldap24-server: . files Message-ID: <201710300553.v9U5rd3w087001@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: delphij Date: Mon Oct 30 05:53:38 2017 New Revision: 453156 URL: https://svnweb.freebsd.org/changeset/ports/453156 Log: Workaround an issue with kqueue support. OpenLDAP does slapd_daemon_init() which will initialize kqueue(), but then calls lutil_detach() which will fork(), and the fork() would invalidate the kqueue descriptor in the child process. Completely solving this would require some intrusive changes so workaround this for now by calling rfork() without RFFDG and reorder file descriptor closure order. While I'm there also refrain from stopping slapd when deinstalling. Modified: head/net/openldap24-server/Makefile head/net/openldap24-server/files/extrapatch-ITS6300 head/net/openldap24-server/pkg-plist Modified: head/net/openldap24-server/Makefile ============================================================================== --- head/net/openldap24-server/Makefile Mon Oct 30 04:04:27 2017 (r453155) +++ head/net/openldap24-server/Makefile Mon Oct 30 05:53:38 2017 (r453156) @@ -65,7 +65,7 @@ BROKEN= incompatible OpenLDAP version: ${WANT_OPENLD .endif PORTREVISION_CLIENT= 0 -PORTREVISION_SERVER= 2 +PORTREVISION_SERVER= 3 OPENLDAP_SHLIB_MAJOR= 2 OPENLDAP_SHLIB_MINOR= 10.8 OPENLDAP_MAJOR= ${DISTVERSION:R} Modified: head/net/openldap24-server/files/extrapatch-ITS6300 ============================================================================== --- head/net/openldap24-server/files/extrapatch-ITS6300 Mon Oct 30 04:04:27 2017 (r453155) +++ head/net/openldap24-server/files/extrapatch-ITS6300 Mon Oct 30 05:53:38 2017 (r453156) @@ -404,3 +404,31 @@ if ( LogTest( LDAP_DEBUG_ANY )) { int t = ldap_pvt_thread_pool_backload( &connection_pool ); +--- libraries/liblutil/detach.c.orig 2017-06-01 20:01:07 UTC ++++ libraries/liblutil/detach.c +@@ -73,7 +73,7 @@ lutil_detach( int debug, int do_close ) + #ifdef HAVE_THR + pid = fork1(); + #else +- pid = fork(); ++ pid = rfork(RFPROC); + #endif + switch ( pid ) + { +--- servers/slapd/main.c.orig 2017-06-01 20:01:07 UTC ++++ servers/slapd/main.c +@@ -923,12 +923,11 @@ unhandled_option:; + if ( pid ) { + char buf[4]; + rc = EXIT_SUCCESS; +- close( waitfds[1] ); + if ( read( waitfds[0], buf, 1 ) != 1 ) + rc = EXIT_FAILURE; +- _exit( rc ); +- } else { ++ close( waitfds[1] ); + close( waitfds[0] ); ++ _exit( rc ); + } + } + #endif /* HAVE_WINSOCK */ Modified: head/net/openldap24-server/pkg-plist ============================================================================== --- head/net/openldap24-server/pkg-plist Mon Oct 30 04:04:27 2017 (r453155) +++ head/net/openldap24-server/pkg-plist Mon Oct 30 05:53:38 2017 (r453156) @@ -1,4 +1,3 @@ -@preunexec %%RC_DIR%%/etc/rc.d/slapd stop 2>&1 >/dev/null || true %%ETCDIR%%/schema/README %%ETCDIR%%/schema/collective.ldif @sample %%ETCDIR%%/schema/collective.schema.sample
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710300553.v9U5rd3w087001>