From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#60237: 30.0.50; tree sitter core dumps when I edebug view a node Date: Sun, 26 Feb 2023 10:37:17 +0800 Message-ID: <87zg9117aa.fsf@yahoo.com> References: <9FCDA5B7-D216-45B1-8051-35B05633BEFB@gmail.com> <83sfeukwsb.fsf@gnu.org> <574817C4-3FD8-43EA-B53C-B2BCB60A6D0A@gmail.com> Reply-To: Po Lu Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9179"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Eli Zaretskii , Mickey Petersen , 60237@debbugs.gnu.org To: Yuan Fu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Feb 26 03:38:21 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pW6vd-0002HW-31 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 26 Feb 2023 03:38:21 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pW6vL-0004jo-Ku; Sat, 25 Feb 2023 21:38:03 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pW6vK-0004jg-UA for bug-gnu-emacs@gnu.org; Sat, 25 Feb 2023 21:38:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pW6vK-0001dH-3s for bug-gnu-emacs@gnu.org; Sat, 25 Feb 2023 21:38:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pW6vJ-0001nn-Mz for bug-gnu-emacs@gnu.org; Sat, 25 Feb 2023 21:38:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 Feb 2023 02:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60237 X-GNU-PR-Package: emacs Original-Received: via spool by 60237-submit@debbugs.gnu.org id=B60237.16773790606895 (code B ref 60237); Sun, 26 Feb 2023 02:38:01 +0000 Original-Received: (at 60237) by debbugs.gnu.org; 26 Feb 2023 02:37:40 +0000 Original-Received: from localhost ([127.0.0.1]:42012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pW6ux-0001n8-LV for submit@debbugs.gnu.org; Sat, 25 Feb 2023 21:37:39 -0500 Original-Received: from sonic317-33.consmr.mail.ne1.yahoo.com ([66.163.184.44]:34408) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pW6uw-0001mu-BD for 60237@debbugs.gnu.org; Sat, 25 Feb 2023 21:37:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677379051; bh=OkpaUKVUzgs0P8+FfhO0RLM2HssPIKVBwjXtFoZucLY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=madwf5HWxrhxPOc50r4QZfbsaAOuDMgan+dH/O/HgoDLt2cMGxmK0xSXYCuNtOQtNRBnSybV8JORRvUyjbEswBzaVxnORopCAFL1dIHhKE/WIAWK0qZ3IwSqxrqlXqfXhN1Vm97itcDtVdcJMMmWqF+CFnhgcnBOj3a5ZjLoRLn6iuVl4l4OHIN3lMTUXPvcLVPxVwoHNB4ed2ZPCZD7vcGYHraK7B49jKS6GXTy9x2PBMx8np67+VxBtt+n0CGPiVCuWZbPLE6cRgZBd5ULd6CrLZ13AAyxwu/VpVehWdjmQ7+gCLUtS3REzGl4lc5TzHfJJ2l3jBousAAst5b2/w== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677379051; bh=vZCutoqRJyNCMcni8iEMchickMt9mXriBNKDqCRu9Tl=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=DXsnsGJ7RDswxRHRGTOJcIP3QbmNIEdJkXLGy2lAF8HVMluJQbDUKzcIIUiUYfwMfSC0FRMtS7QUr2OxKyj7Z7oFB0kw7fqCSnRYqepSfnfnU4BOLkSGmO7e4j/vcPB8JFnCCs9IrGicHm4hLhYq8WaW6l6DzJBDfPZydKEfeyBpn13TrMX6FECIgnnFehHYON/U22/AHg34Nt3aOsaW6wqcOkL8DrXTOrjaPEK53qEzRQS327GtYap8tPEfI7s1JSTGy+MJR1y0wqFOyA5s5CupDRXp+X0fB6UsjVWl/ah2Hyb8tTYDXyIsi81ozNuIEnxJLwp7JrMthcjDoH4j+Q== X-YMail-OSG: 61nXByoVM1k90c90MCfEKU2w3jOXPKDy_IPILFRo5eeJFRCzUnRSGsqAXolP1Wo PE3C.6DDsVeQGIgHPD27AW5qzNEXGeedv2.LdQwqKOzff8RlQ8XLaqxvfdQBVpCdOEqKQtdeGZcQ 43BjOATRKgy8bq6U8wGTa5uPD7o.f4RayI3r462tcCj8Xlw433t1pYqWg0jxmNk2phLiQji.ON_d EnT9_Y.ILftg1GbVodhAfBL_VWjFOuPKxOOrVUOKxjMYfxLeFItD1xxha4PhBVyBqlJhTFCb_1Nj EGiBWhSsAUgaO4SwLtzb_lSAy8lxjMxnZS9r1fA08cAd_3ai30f5Gk.VOrgx.6ycrhj.kaLFnSNr tuI5amsulGroEqHRQE.BvfTxzaF4ESdGsW8RfMrPwpMm.IMLuXP73YJx23F3MYtJORfUyJusJimd Jjv9QAO_860D4idfWApKzucN9D7GBNPXV97nF.LWoTEex1Lihy6VA.rYooXiXdoZlwtxRJuD4Ncv 0N4qorVZNa6dMV9Dt6TCAB7Hg.IMGoZSffTK7GoB0JqesqTHPZ8McGom95kWxT4NW._Fob2CqDpe QEv2S9CF.5uPw7Ox86nMvEsiGIMv14ewkeol5CjHcVuKCsOImTY9Pzgo_j.t5vvSXH9IhjqH3d1o 9PN6FP0MLYsE8gw1VRTsgdCCMg.acdBIUA.TBOxIJjbPNSRPLZ62hYQNSP0Jmrgr4YRpBolodDPi yul87y4Qs_3C4Q9E6RMD0vkp1csm9v.0XNND1L2Kz8qApV6GJ018KC24EfWVimpmc5UNoa3y5rU7 jD_QUj93P8xMlu4ZtH2OncXI9.rv9ZDSXwIIoAQT_l X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.ne1.yahoo.com with HTTP; Sun, 26 Feb 2023 02:37:31 +0000 Original-Received: by hermes--production-sg3-9fc5746c8-nc5k6 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 688a0cf7fcef57037c3ece77a3cb88ea; Sun, 26 Feb 2023 02:37:24 +0000 (UTC) In-Reply-To: <574817C4-3FD8-43EA-B53C-B2BCB60A6D0A@gmail.com> (Yuan Fu's message of "Sat, 25 Feb 2023 18:01:07 -0800") X-Mailer: WebService/1.1.21221 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:256759 Archived-At: Yuan Fu writes: > I had a look, and it seems legit. In tree-sitter, a TSTree (or more > precisely, a Subtree) is just some inlined data plus a refcounted > pointer to the complete data. This way multiple trees share common > subtrees/nodes. Eg, when incrementally parsing, you pass in an old > tree and get a new tree, these two trees will share the unchanged part > of the tree. > > Therefore, deleting a tree is not simply free(). Instead, you > decrement the refcount of the subtree, and if the count =3D=3D 0, free the > data and traverse the subtree and decrementing each children=E2=80=99s > refcount, and delete them if the count =3D=3D 0, and so on. And what will happen if that malloc fails, while *freeing* memory? Anyway, the profiler should either be fixed to not hook into xmalloc, or (better) tree-sitter should be fixed to not call xmalloc during GC. > To traverse the tree, the function uses an array as a stack, which > calls array_push to push new elements, which may call malloc. How deep are those trees?