From owner-freebsd-threads@freebsd.org Mon Jun 13 08:15:41 2016 Return-Path: Delivered-To: freebsd-threads@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8B28AF174E for ; Mon, 13 Jun 2016 08:15:41 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 854B22C7B for ; Mon, 13 Jun 2016 08:15:41 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (ppp121-45-242-176.lns20.per4.internode.on.net [121.45.242.176]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id u5D8FTKm053909 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 13 Jun 2016 01:15:33 -0700 (PDT) (envelope-from julian@freebsd.org) Subject: Re: comment from a user... To: Konstantin Belousov References: <86df5edc-87ce-89ef-7a30-23e068a6efcc@freebsd.org> <20160608044433.GW38613@kib.kiev.ua> Cc: freebsd-threads@freebsd.org From: Julian Elischer Message-ID: <6d91afd1-05a5-fa4d-c470-5cf23ddfb63a@freebsd.org> Date: Mon, 13 Jun 2016 16:15:23 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <20160608044433.GW38613@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jun 2016 08:15:41 -0000 On 8/06/2016 12:44 PM, Konstantin Belousov wrote: > On Wed, Jun 08, 2016 at 12:32:18PM +0800, Julian Elischer wrote: >> I got the following from a user... >> He's (forced to) use FreeBSD 8 >> Is this still an issue? and does anyone have thoughts? >> >> ------------------------- >> >> Hi Julian, >> I have a set of code with a fairly strong unit test framework. This >> framework works on Windows (cygwin) and Linux amongst other >> platforms. While running tests I always verify all allocated memory >> is freed for good hygiene. >> >> I've been running a test which has a printf in it and the following stack: >> #3 0x0000000000405219 in calloc (count=1, size=80) at testrunner.c:642 >> #4 0x0000000806bd1ce4 in pthread_mutexattr_init () from /lib/libthr.so.3 >> #5 0x0000000806bd1f91 in pthread_mutex_getyieldloops_np () from >> /lib/libthr.so.3 >> #6 0x0000000806bd2b81 in pthread_mutex_lock () from /lib/libthr.so.3 >> #7 0x0000000806dcda13 in abort () from /lib/libc.so.7 >> #8 0x0000000806dcdab3 in abort () from /lib/libc.so.7 >> #9 0x0000000806dc91b9 in getenv () from /lib/libc.so.7 >> #10 0x0000000806dc37ae in open () from /lib/libc.so.7 >> #11 0x0000000806dc50ca in vfprintf () from /lib/libc.so.7 >> #12 0x0000000806db10fa in printf () from /lib/libc.so.7 >> >> >> This calloc'd memory never gets freed and forces my unit tests to fail. >> >> I know this is an extremely old version of FreeBSD, but I figured I'd >> let you know so that perhaps somebody, somewhere, might be interested >> in such things and get a hold of the stack trace. > The backtrace is not useful, since without debugging information, > closest symbols are matched, and we do not see real function calls. > > That said, our statically allocated locks allocate memory on the first > touch. And since locks are statically allocated, the memory is never freed. > I do not see anything wrong with that. yes I told him as much.. also that the 'abort' makes it almost "not an error" no matter how much memory is leaked as 'abort' is not supposed to be recoverable >