From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id DFE49431FAF for ; Thu, 20 Dec 2012 17:55:28 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OHkPP91heIW7 for ; Thu, 20 Dec 2012 17:55:28 -0800 (PST) Received: from dmz-mailsec-scanner-7.mit.edu (DMZ-MAILSEC-SCANNER-7.MIT.EDU [18.7.68.36]) by olra.theworths.org (Postfix) with ESMTP id 3D156431FAE for ; Thu, 20 Dec 2012 17:55:28 -0800 (PST) X-AuditID: 12074424-b7f4e6d0000004ca-25-50d3c18f2b25 Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP id 35.54.01226.F81C3D05; Thu, 20 Dec 2012 20:55:27 -0500 (EST) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id qBL1tQ4r028751; Thu, 20 Dec 2012 20:55:26 -0500 Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id qBL1tNhH002730 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 20 Dec 2012 20:55:25 -0500 (EST) Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80) (envelope-from ) id 1Tlrpb-0007Hb-9x; Thu, 20 Dec 2012 20:55:23 -0500 Date: Thu, 20 Dec 2012 20:55:23 -0500 From: Austin Clements To: david@tethera.net Subject: Re: [PATCH 1/3] CLI: add talloc leak report, controlled by an environment variable. Message-ID: <20121221015523.GQ6187@mit.edu> References: <1355714648-23144-1-git-send-email-david@tethera.net> <1355714648-23144-2-git-send-email-david@tethera.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1355714648-23144-2-git-send-email-david@tethera.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphleLIzCtJLcpLzFFi42IR4hRV1u0/eDnA4MNUKYuNy34yW9xo7Wa0 uH5zJrMDs8evtrnMHs9W3WL22HLoPXMAcxSXTUpqTmZZapG+XQJXxsuZCQWveCuOnrzC1sB4 nauLkZNDQsBE4m/3VGYIW0ziwr31bF2MXBxCAvsYJZZ/uMYE4WxglFi/4j07hHORSeJWQzsr SIuQwBJGiUf7U0BsFgFViROr2tlBbDYBDYlt+5czgtgiAqISpzdNAqtnFrCXWDR7EliNsECc xL9lb8BqeAW0Jfb+fs8OMbNS4viF6awQcUGJkzOfsED0aknc+PcS6CIOIFtaYvk/DpAwp4CT xKG789hAbFEBFYkpJ7exTWAUmoWkexaS7lkI3QsYmVcxyqbkVunmJmbmFKcm6xYnJ+blpRbp muvlZpbopaaUbmIEBTq7i8oOxuZDSocYBTgYlXh4IywuBwixJpYVV+YeYpTkYFIS5dXbDxTi S8pPqcxILM6ILyrNSS0+xCjBwawkwvt8CVCONyWxsiq1KB8mJc3BoiTOez3lpr+QQHpiSWp2 ampBahFMVoaDQ0mCt+0AUKNgUWp6akVaZk4JQpqJgxNkOA/Q8G0gNbzFBYm5xZnpEPlTjIpS 4rzf9wElBEASGaV5cL2wRPSKURzoFWHefSDtPMAkBtf9CmgwE9DgIL0LIINLEhFSUg2MYfwT REsmxq7VMthS9jFna3X61AwGkcxJXzzjPZ5yf/AxOnaKU3P7V0/2hY/jvE8e0Vw2UeNj4PrP HK6JMnqiFtmts35du/CmxURDvPoQr9XTMxPmS93cJL1WdrLz8tcJYU8nWsgIbju2W2t1R+a6 4w99m8Pe6PW79ty6ce7I1R8TTMvd5W8uUGIpzkg01GIuKk4EAPun4JYfAwAA Cc: notmuch@notmuchmail.org, David Bremner X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2012 01:55:29 -0000 Quoth david@tethera.net on Dec 16 at 11:24 pm: > From: David Bremner > > The argument handling in notmuch.c seems due for an overhaul, but > until then use an environment variable to specify a location to write > the talloc leak report to. This is only enabled for the (interesting) > case where some notmuch subcommand is invoked. > --- > notmuch.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/notmuch.c b/notmuch.c > index 9516dfb..fb49c5a 100644 > --- a/notmuch.c > +++ b/notmuch.c > @@ -322,8 +322,20 @@ main (int argc, char *argv[]) > for (i = 0; i < ARRAY_SIZE (commands); i++) { > command = &commands[i]; > > - if (strcmp (argv[1], command->name) == 0) > - return (command->function) (local, argc - 1, &argv[1]); > + if (strcmp (argv[1], command->name) == 0) { > + int ret; > + char *talloc_report; > + > + ret = (command->function) (local, argc - 1, &argv[1]); > + > + talloc_report=getenv ("NOTMUCH_TALLOC_REPORT"); Missing spaces around =. I think hacking this in as an environment variable is fine, but maybe there should be a comment here saying that it would be better to follow Samba's talloc command-line argument conventions? > + if (talloc_report && strcmp(talloc_report, "") != 0) { Missing space before paren. > + FILE *report = fopen (talloc_report, "w"); > + talloc_report_full (NULL, report); Maybe I'm missing something here, but don't you have to call talloc_enable_leak_report_full before the first use of talloc to get a complete leak report? > + } > + > + return ret; > + } > } > > fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",