From owner-cvs-src@FreeBSD.ORG Mon Apr 23 10:21:36 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5F64F16A400; Mon, 23 Apr 2007 10:21:36 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.64.130]) by mx1.freebsd.org (Postfix) with ESMTP id D8EA113C468; Mon, 23 Apr 2007 10:21:35 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.1/8.14.1) with ESMTP id l3N9rvTf015452; Mon, 23 Apr 2007 13:53:57 +0400 (MSD) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.1/8.14.1/Submit) id l3N9rulO015451; Mon, 23 Apr 2007 13:53:56 +0400 (MSD) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 23 Apr 2007 13:53:56 +0400 From: Gleb Smirnoff To: Bruce M Simpson Message-ID: <20070423095356.GB2742@FreeBSD.org> References: <200704140101.l3E11kum000736@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <200704140101.l3E11kum000736@repoman.freebsd.org> User-Agent: Mutt/1.5.15 (2007-04-06) Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/contrib/pf/net if_pfsync.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 10:21:36 -0000 On Sat, Apr 14, 2007 at 01:01:46AM +0000, Bruce M Simpson wrote: B> bms 2007-04-14 01:01:46 UTC B> B> FreeBSD src repository B> B> Modified files: B> sys/contrib/pf/net if_pfsync.c B> Log: B> In member interface detach event handler, do not attempt to free state B> which has already been freed by in_ifdetach(). With this cumulative change, B> the removal of a member interface will not cause a panic in pfsync(4). B> B> Requested by: yar B> PR: 86848 Sorry for late reply on this commit, I've had email problems. Bruce, I still think that freeing multicast memberships in the in_ifdetach() was a bad design idea. Memory should be allocated and freed by the same module, otherwise we've got a messy architecture. AFAIR, you have made this change to plug a memory leak. We were leaking multicast membership added by generic IP layer (all hosts address?), if my memory serves me well. You should have fixed this particular leak. Adding the major sweeper of all memberships on the interface you have plugged this particular leak, but have broken CARP, pfsync and any other subsystem that was cleaning memory after itself (unlike generic IP layer does). I think that we should plug the leak correctly and remove the in_purgemaddrs(). -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE