From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Mar 24 06:10:15 2006 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 565A716A423 for ; Fri, 24 Mar 2006 06:10:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEC6843D45 for ; Fri, 24 Mar 2006 06:10:14 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k2O6AEn8063260 for ; Fri, 24 Mar 2006 06:10:14 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k2O6AENo063258; Fri, 24 Mar 2006 06:10:14 GMT (envelope-from gnats) Resent-Date: Fri, 24 Mar 2006 06:10:14 GMT Resent-Message-Id: <200603240610.k2O6AENo063258@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Masanori OZAWA Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E8B7816A400 for ; Fri, 24 Mar 2006 06:08:23 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9D12D43D45 for ; Fri, 24 Mar 2006 06:08:23 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k2O68NYl034347 for ; Fri, 24 Mar 2006 06:08:23 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k2O68ND3034346; Fri, 24 Mar 2006 06:08:23 GMT (envelope-from nobody) Message-Id: <200603240608.k2O68ND3034346@www.freebsd.org> Date: Fri, 24 Mar 2006 06:08:23 GMT From: Masanori OZAWA To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: ports/94895: [PATCH] mail/postgrey: The shutting donw process of postgrey is incorrect. X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Mar 2006 06:10:15 -0000 >Number: 94895 >Category: ports >Synopsis: [PATCH] mail/postgrey: The shutting donw process of postgrey is incorrect. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Mar 24 06:10:14 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Masanori OZAWA >Release: FreeBSD 6.0-RELEASE-p6 >Organization: ONGS Inc. >Environment: FreeBSD mithos.ongs.co.jp 6.0-RELEASE-p6 FreeBSD 6.0-RELEASE-p6 #0: Thu Mar 23 12:16:26 JST 2006 root@mithos.ongs.co.jp:/usr/obj/usr/src/sys/MITHOS i386 >Description: The shutting donw process of postgrey is incorrect. That causes a problem that DB gets broken and postgrey cannot work. >How-To-Repeat: # /usr/local/etc/rc.d/postgrey.sh start # /usr/local/etc/rc.d/postgrey.sh stop postgrey already running? (pid=/var/run/postgrey.pid) >Fix: I think that you could choice from some solutions. One of the solutions as follow: --- postgrey.sh.orig Fri Mar 24 13:46:00 2006 +++ postgrey.sh Fri Mar 24 14:48:28 2006 @@ -24,14 +24,8 @@ required_dirs=/var/db/postgrey extra_commands=reload -stop_postcmd=stop_postcmd - -stop_postcmd() -{ - rm -f $pidfile -} - # set defaults +load_rc_config $name postgrey_enable=${postgrey_enable:-"NO"} postgrey_pidfile=${postgrey_pidfile:-"/var/run/postgrey.pid"} @@ -40,5 +34,49 @@ pidfile="${postgrey_pidfile}" -load_rc_config $name -run_rc_command "$1" +get_postgrey_pid() +{ + local pid - + local junk - + + if [ -z "${pidfile}" ]; then + echo "you need to set postgrey_pidfile variable." + return 0 + fi + if [ ! -f "${pidfile}" ]; then + return 0 + fi + + read pid junk < ${pidfile} + if [ -z "${pid}" ]; then + return 0 + fi + + return ${pid} +} + +if [ "$1" = "start" ]; then + if ! get_postgrey_pid ; then + echo "${name} already running. (pid=${pidfile})" + exit 0 + fi + run_rc_command "$1" +elif [ "$1" = "stop" ]; then + get_postgrey_pid + pid=$? + if [ "0" = "${pid}" ]; then + echo "${name} already running? (pid=${pidfile})" + exit 1 + fi + + psinfo=`ps -p "${pid}" | grep -e postgrey -e perl | grep -v grep` + if [ -n "$psinfo" ]; then + kill -TERM ${pid} + rm -f ${pidfile} + else + echo "${name} already running? (pid=${pidfile})" + fi +else + run_rc_command "$1" +fi + It is serious. By this problem, some folks got DB broken and postgrey did not work. I think it should be fixed ASAP. Thanks. >Release-Note: >Audit-Trail: >Unformatted: