From owner-freebsd-hackers@freebsd.org Tue Mar 28 08:38:16 2017 Return-Path: Delivered-To: freebsd-hackers@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 B1AA2D21542 for ; Tue, 28 Mar 2017 08:38:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E8F23CC; Tue, 28 Mar 2017 08:38:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v2S8cABe028383 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 28 Mar 2017 11:38:10 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v2S8cABe028383 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v2S8cAdE028382; Tue, 28 Mar 2017 11:38:10 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 28 Mar 2017 11:38:10 +0300 From: Konstantin Belousov To: Steven Hartland Cc: "K. Macy" , "freebsd-hackers@freebsd.org" Subject: Re: Help needed to identify golang fork / memory corruption issue on FreeBSD Message-ID: <20170328083810.GR43712@kib.kiev.ua> References: <20170317082333.GP16105@kib.kiev.ua> <180a601b-5481-bb41-f7fc-67976aabe451@multiplay.co.uk> <20170317124437.GR16105@kib.kiev.ua> <5ba92447-945e-6fea-ad4f-f58ac2a0012e@multiplay.co.uk> <20170327161833.GL43712@kib.kiev.ua> <3ec35a46-ae70-35cd-29f8-82e7cebb0eb6@multiplay.co.uk> <20170327164905.GN43712@kib.kiev.ua> <17f29342-f3c0-5940-d012-1a698e59a384@multiplay.co.uk> <20170328075859.GQ43712@kib.kiev.ua> <85f86a20-948f-025a-0d09-92ee2a815136@multiplay.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <85f86a20-948f-025a-0d09-92ee2a815136@multiplay.co.uk> User-Agent: Mutt/1.8.0 (2017-02-23) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2017 08:38:16 -0000 On Tue, Mar 28, 2017 at 09:23:24AM +0100, Steven Hartland wrote: > As I stopped the panic before that I couldn't tell so I've re-run with > some debug added just before the panic to capture the addresses of the > workbuf structure that the issue was detected in, here goes (parent: > 62620, child: 98756): > > workbuf: 0x800b51800 > fatal error: workbuf is not empty > workbuf: 0x800a72000 > fatal error: workbuf is empty > workbuf: 0x800a72000 > fatal error: workbuf is not empty I do not understand. Why do you show several addresses ? Wouldn't the runtime panic after detecting the discrepancy, so there could be only one address ? > > procstat -v 62620 98756 > PID START END PRT RES PRES REF SHD FLAG > TP PATH > 62620 0x400000 0x70e000 r-x 309 595 5 1 CN-- vn > /root/golang/src/test5/test5 > 62620 0x70e000 0x951000 r-- 254 595 5 1 CN-- vn > /root/golang/src/test5/test5 > 62620 0x951000 0x988000 rw- 31 0 1 0 C--- vn > /root/golang/src/test5/test5 > 62620 0x988000 0x9ab000 rw- 18 0 1 0 C--- df > 62620 0x800951000 0x8009f1000 rw- 36 0 1 0 C--- df > 62620 0x8009f1000 0x800ac1000 rw- 28 0 1 0 C--- df > 62620 0x800ac1000 0x800ad1000 rw- 16 0 1 0 C--- df > 62620 0x800ad1000 0x800b91000 rw- 5 0 1 0 C--- df > 62620 0x800b91000 0x800bd1000 rw- 2 0 1 0 C--- df > 62620 0x800bd1000 0x800c11000 rw- 2 0 1 0 C--- df > 62620 0x800c11000 0x800c51000 rw- 1 1 2 0 CN-- df > 62620 0x800c51000 0x800c91000 rw- 1 0 1 0 C--- df > 62620 0x800c91000 0x800cd1000 rw- 1 0 1 0 C--- df > 62620 0xc000000000 0xc000001000 rw- 1 1 2 0 CN-- df > 62620 0xc41fff0000 0xc41fff8000 rw- 3 3 2 0 CN-- df > 62620 0xc41fff8000 0xc420200000 rw- 251 0 1 0 C--- df > 62620 0x7ffffffdf000 0x7ffffffff000 rwx 2 0 1 0 C--D df > 62620 0x7ffffffff000 0x800000000000 r-x 1 1 28 0 ---- ph > 98756 0x400000 0x70e000 r-x 309 595 5 1 CN-- vn > /root/golang/src/test5/test5 > 98756 0x70e000 0x951000 r-- 254 595 5 1 CN-- vn > /root/golang/src/test5/test5 > 98756 0x951000 0x988000 rw- 31 0 2 1 CN-- vn > /root/golang/src/test5/test5 > 98756 0x988000 0x9ab000 rw- 18 18 2 1 CN-- df > 98756 0x800951000 0x8009f1000 rw- 36 36 2 1 CN-- df > 98756 0x8009f1000 0x800ac1000 rw- 28 28 2 1 CN-- df > 98756 0x800ac1000 0x800ad1000 rw- 16 16 2 1 CN-- df > 98756 0x800ad1000 0x800b91000 rw- 5 5 2 1 CN-- df > 98756 0x800b91000 0x800bd1000 rw- 2 2 2 1 CN-- df > 98756 0x800bd1000 0x800c11000 rw- 2 2 2 1 CN-- df > 98756 0x800c11000 0x800c51000 rw- 1 1 2 0 CN-- df > 98756 0x800c51000 0x800c91000 rw- 1 1 2 1 CN-- df > 98756 0x800c91000 0x800cd1000 rw- 1 1 2 1 CN-- df > 98756 0xc000000000 0xc000001000 rw- 1 1 2 0 CN-- df > 98756 0xc41fff0000 0xc41fff8000 rw- 3 3 2 0 CN-- df > 98756 0xc41fff8000 0xc420200000 rw- 251 0 1 0 C--- df > 98756 0x7ffffffdf000 0x7ffffffff000 rwx 2 2 2 1 CN-D df > 98756 0x7ffffffff000 0x800000000000 r-x 1 1 28 0 ---- ph > > Regards > Steve