ports/103525: Maintainer update: mail/dovecot to 1.0.r7_1

Robin Breathe robin at isometry.net
Sat Sep 23 18:20:24 UTC 2006


>Number:         103525
>Category:       ports
>Synopsis:       Maintainer update: mail/dovecot to 1.0.r7_1
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 23 18:20:21 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Robin Breathe
>Release:        FreeBSD 6.1-RELEASE-p2 i386
>Organization:
>Environment:
>Description:
Fix 100% CPU usage looping when a vnode change event came but it was never
untriggered. Patch by Rui Lopes (rgl ruilopes com)

>How-To-Repeat:
>Fix:
Apply the following patch:

--- dovecot-1.0.r7_1.diff begins here ---
diff -ruN dovecot-1.0.r7/Makefile dovecot/Makefile
--- dovecot-1.0.r7/Makefile	Sat Sep 23 17:52:00 2006
+++ dovecot/Makefile	Sat Sep 23 18:01:08 2006
@@ -8,6 +8,7 @@
 
 PORTNAME=	dovecot
 DISTVERSION=	1.0.rc7
+PORTREVISION=	1
 CATEGORIES=	mail ipv6
 MASTER_SITES=	http://www.dovecot.org/releases/
 
diff -ruN dovecot-1.0.r7/files/patch-src_lib_ioloop-notify-kqueue.c dovecot/files/patch-src_lib_ioloop-notify-kqueue.c
--- dovecot-1.0.r7/files/patch-src_lib_ioloop-notify-kqueue.c	Thu Jan  1 00:00:00 1970
+++ dovecot/files/patch-src_lib_ioloop-notify-kqueue.c	Sat Sep 23 17:56:11 2006
@@ -0,0 +1,14 @@
+--- src/lib/ioloop-notify-kqueue.c	16 Aug 2006 17:58:03 -0000	1.3.2.2
++++ src/lib/ioloop-notify-kqueue.c	26 Aug 2006 13:55:01 -0000	1.3.2.3
+@@ -111,7 +111,10 @@
+ 	io->callback = callback;
+ 	io->context = context;
+ 
+-	EV_SET(&ev, fd, EVFILT_VNODE, EV_ADD,
++	/* EV_CLEAR flag is needed because the EVFILT_VNODE filter reports
++	   event state transitions and not the current state.  With this flag,
++	   the same event is only returned once. */
++	EV_SET(&ev, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR,
+ 	       NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_REVOKE, 0, io);
+ 	if (kevent(ctx->kq, &ev, 1, NULL, 0, NULL) < 0) {
+ 		i_error("kevent(%d, %s) for notify failed: %m", fd, path);
--- dovecot-1.0.r7_1.diff ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list