Eli Zaretskii <eliz@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.Received: (at 81905) by debbugs.gnu.org; 24 Sep 2026 18:40:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 24 14:40:24 2026 Received: from localhost ([127.0.0.1]:59761 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1x9oMm-0008LH-7o for submit <at> debbugs.gnu.org; Thu, 24 Sep 2026 14:40:24 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:11178) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1x9oMd-0008Ge-B3 for 81905 <at> debbugs.gnu.org; Thu, 24 Sep 2026 14:40:15 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 39C0F100145; Thu, 24 Sep 2026 14:40:05 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1790275204; bh=5tA2lzAEGpeoevIodSk/rsOu5QDhXa8CZJvhvPwF/HA=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=cbf5gbs2ub/NaAhsEhT8h0GuKYuOgtP2ZhTnk4jsWzWUTF7RXufi/3oh+d4WyVLZ1 ezd/HC0D9999GiNgHBaxEX1mLM5PYvQraSgyo8bkr4km//6No69prD/x/Mj/WvGZ0C 2GOHOd2xNer4eTrbzDsHm+sRF5VDq/RVAD339WXD5OMQiL0el16v62Kmp1OKbKZ7OC vA5oDkcCvqzOrlXg9/bI1fZIOs6U3BaxKgf8Hro3PL17M4QxsdlX0ysE+xxkV/W2Sn gWBHrbbNXn2noPpYlZWo9zPe/qOrAKprmWP2UBOIA0Xv1OBjR5j/HKTew/1y83//LA vXKErkWodU2SA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 1AD8E10009B; Thu, 24 Sep 2026 14:40:04 -0400 (EDT) Received: from pastel (unknown [104.247.232.225]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D4F22120657; Thu, 24 Sep 2026 14:40:03 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Yuan Fu <casouri@HIDDEN> Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string parser with tramp-cache loaded In-Reply-To: <B5D0F6D8-D2E0-44B4-9DF5-41BF72B27E38@HIDDEN> Message-ID: <jwv1pai33d4.fsf-monnier+emacs@HIDDEN> References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN> <86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> <86v77wciva.fsf@HIDDEN> <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> <B5D0F6D8-D2E0-44B4-9DF5-41BF72B27E38@HIDDEN> Date: Thu, 24 Sep 2026 14:40:02 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.116 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 81905 Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, chuxubank@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Sharing a buffer brings can work but it=E2=80=99ll be weird. To make > treesit-node-text still work (which returns the text over which the node > spans), we=E2=80=99d need to store the string in the parser instead, and = use that > string in treesit-node-text for parsers created by treesit-parse-string. = We > also need to disable reparse for all the parsers in that work buffer. And > there might be other things we need to handle differently. I don't follow. My crystal ball suggests maybe you got the impression that I was recommending to use the internal buffer only during the parse itself, but instead I was recommending to replace the `Fkill_buffer (lisp_parser->buffer)` by something like (push lisp_parser->buffer treesit_free_buffers). So it should require very few changes to the current code. Tho maybe I'm missing some crucial element. =3D=3D=3D Stefan
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.Received: (at 81905) by debbugs.gnu.org; 24 Sep 2026 09:12:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 24 05:12:48 2026 Received: from localhost ([127.0.0.1]:34733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1x9fVU-0008Kx-Q1 for submit <at> debbugs.gnu.org; Thu, 24 Sep 2026 05:12:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33996) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1x9fVR-0008JY-Ip for 81905 <at> debbugs.gnu.org; Thu, 24 Sep 2026 05:12:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1x9fVL-0001Mt-V7; Thu, 24 Sep 2026 05:12:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=7PlzDgcgW86xFysDJ8B8ZCC0qKKUi89+oxv7mipAxhQ=; b=iIvKsLrHVB2CmH8i5LPF DvCeLOutkLcv/2F7bU/n+YJfDsnWeM04xoZdasfLEKz8YihEWIyQ1OP/AJfGnIdiNq34WmhpYB6+U c6NdnXqrK+GVM8TtWhB7HOrSYBzN9b2Ko3UO4dwxGeesWfQDJfIMMOmb0+g41RpzTh5QAyRMO5iS9 oK/XxTPhc4c47O5yv19kptiDfqzoO8SKpAPZpeparsImjVER9Rr7smBhKh9QxYmoiNrzBZKVEbFO3 30FZ1dMgLk7onQy3DD4bW8juqxM/vahjTJ2uX7jEybiaXdGBU6LGnrPkA4/dJWbBfAS6d60iX297w eRbi1yqsQUUsEw==; Date: Thu, 24 Sep 2026 12:12:32 +0300 Message-Id: <86mrt79fnj.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Yuan Fu <casouri@HIDDEN> In-Reply-To: <B5D0F6D8-D2E0-44B4-9DF5-41BF72B27E38@HIDDEN> (message from Yuan Fu on Thu, 24 Sep 2026 01:09:44 -0700) Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string parser with tramp-cache loaded References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN> <86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> <86v77wciva.fsf@HIDDEN> <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> <B5D0F6D8-D2E0-44B4-9DF5-41BF72B27E38@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 81905 Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, chuxubank@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Yuan Fu <casouri@HIDDEN> > Date: Thu, 24 Sep 2026 01:09:44 -0700 > Cc: Eli Zaretskii <eliz@HIDDEN>, > chuxubank@HIDDEN, > michael.albinus@HIDDEN, > 81905 <at> debbugs.gnu.org > > > > > On Sep 23, 2026, at 8:29 AM, Stefan Monnier <monnier@HIDDEN> wrote: > > > >>>>> The relevant part of two independent macOS crash reports is identical: > >>>>> > >>>>> Fmake_closure > >>>>> tramp-flush-file-function > >>>>> Frun_hook_with_args > >>>>> Fkill_buffer > >>>>> treesit_delete_parser > >>>>> sweep_vectors > >>>>> garbage_collect > >>>>> Fgarbage_collect > > [...] > >>> Tree-sitter parser does kill the associated buffer, if the parser is > >>> created from treesit-parse-string. Is it safe to kill a buffer during gc? > >> I don't know. Maybe Stefan does. > > > > The above backtrace shows it's not. We can try and make it safe, but > > I think that would make sense only for a limited class of buffers, > > e.g. one where we know that we don't need to run anything like > > `kill-buffer-hook` when we kill them. > > > > AFAICT, this is the case here: those buffers are special, internal > > buffers, so I think we could make it safe, but maybe a better option is > > to refrain from killing them and instead keep a buffer ready for use by > > `treesit-parse-string`, like we do with ` *code-conversion-work*`. > > Sharing a buffer brings can work but it’ll be weird. Sorry, can you explain why would that be weird? > To make treesit-node-text still work (which returns the text over which the node spans), we’d need to store the string in the parser instead, and use that string in treesit-node-text for parsers created by treesit-parse-string. We also need to disable reparse for all the parsers in that work buffer. And there might be other things we need to handle differently. I don't think I follow, please elaborate on these issues. It should be possible to have more than one such buffer, we do something similar in coding.c. > Alternatively we allow a parser to be buffer-less. Last time I looked at it I deemed it too much work but now without that memory it doesn’t seem that bad. I’ll take another jab at that. Thanks.
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.Received: (at 81905) by debbugs.gnu.org; 24 Sep 2026 08:10:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 24 04:10:05 2026 Received: from localhost ([127.0.0.1]:48851 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1x9eWq-0007tK-SC for submit <at> debbugs.gnu.org; Thu, 24 Sep 2026 04:10:05 -0400 Received: from mail-dl2-x0f.google.com ([2607:f8b0:4864:38::f]:39861) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1x9eWp-0007ry-02 for 81905 <at> debbugs.gnu.org; Thu, 24 Sep 2026 04:10:03 -0400 Received: by mail-dl2-x0f.google.com with SMTP id a92af1059eb24-142dd05d97dso1330161c88.0 for <81905 <at> debbugs.gnu.org>; Thu, 24 Sep 2026 01:10:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790237397; x=1790842197; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:content-type:from:to:cc :subject:date:message-id:reply-to:content-type; bh=xpTJ5fG1/x589NXR6hONWWZ9JLfKwUYrOgc0aErxXgU=; b=qARwQSuN7Ply81y4z8lZ/ewm5jWGZYtRMaRfV0R6f8FIKsZypUveP9TnhRbBDhUUTC yZsfdtwdH54CO5Yk+l3hOgXL6mKt4KEKaNa1GNGSswibg8fcPt+xKU7CYcuNXISSRvSw GTJ3dXQXa+k46eqHmX4QP74Fc+giDLsHOqygFkX0sYiCgnyO2X7dGe+y+6CCwQflunlH gmhT/2MGOchP6k5Aidu/vqHZUnn8IkGXJvRh7XYfQLm3/B7Cy+6IDSYaJUa7Wz8DpQRL xCwC/QvcyjlCQcwtsQJE9c2+bFXTp2M1YaXi1vWrP71ligIOKXys/VnZ9v6bi3eusIl7 EI0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790237397; x=1790842197; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xpTJ5fG1/x589NXR6hONWWZ9JLfKwUYrOgc0aErxXgU=; b=AQ5UK7EXGUO5u8oQf9Si3fUywRUVrCFFwMWUM/CrY0Lc712NYpCBwJQTi3w3axJ8Ft RQJuxBfKkei9/N2yBFVb0YFGwz9H0AJMzIW5GXAlZMmdRU5xV8OfdlJGlcM1zz6EJXpd 4WvWbjhgSoM52vtFYps5meaWU8/xJ2hyA42M68B2ZH6zsmPeRxejL2KO9SOZ+unl5Q51 OnfEp476nkwoZMirgm+3n15+gusgBIKcOe2fT3CPpru2Mp9tAzkSoQHt9qxPYk2zwos1 ZvzaHcSwPTCwKSJfLYITYlqe8FNvSB2WxFEVPVQuIWPJ4VrjtECUQdpT8oo19o16IOGF Qd0Q== X-Forwarded-Encrypted: i=1; AKwUvBzuTha+xWhPqTioQW71Urk6oTI1SjqE81UQgSToPfcPTWrFip4TP/Ot5QNeN+kcrn/a3WfUGg==@debbugs.gnu.org X-Gm-Message-State: AFuF++n2CsYPavZrKhI9gQ547GGskjQ+Bz6zQgWufiRbJuoyv1b9CxwS s/Yzcv4miNDjbPYB+HO0Q+07NqK0DJ4HT3S5X6TcmDC7cpflLksQH17W X-Gm-Gg: AYBFou2rUKfgvBIHmdeWmIAclcQEsKxg6NcRM7Po88WQrKTS2mMTVzQyaFzHYC19rJA gfuWUwCzZGtYjv6MwKT4K/gdxVoAY+mhlIaJtNtXKQz8WMntRyqtnvO1tf6ll2B6giWx31sn+1s ZkovkDSJnf2144RfabxFCCN4UxKI49m3M/zldBA5q/+PzuiyMaZZcvW61BWsQ312QBPiHaWPZ0d WyzWkvqm48CG7GClLX86a3/Mkx+sAPrRl6QaV5g6ddoVS2BbnmFVD8zsdUaG7KL+hxL2QiYHIYh ckbGeqFv0cFA46cKixtzq5icLIVBZn8bWD4mBRSMTiPNh56z/RnTiNS9aYmfFq/FnKK3rBW+X45 Tzp9UB7xI55TL+CutmvDlYIHUvXrUSv85IKu8Zqw7gA1ZlO0CYP0SHaFAepvb9lEd0SlGWbzv+g 9KM+aImnQ6BbZyz6Jtb/jnAeJQm0is0up096cRvFvCEZnxHG7CeqLThfsVUTYwYGsTbnbgWtu3q 1pkBHkNOjZij/qq/wv3qsKoaiUuq3Ah X-Received: by 2002:a05:7022:3f82:b0:145:7a:7765 with SMTP id a92af1059eb24-14503ff349fmr1362688c88.36.1790237396717; Thu, 24 Sep 2026 01:09:56 -0700 (PDT) Received: from smtpclient.apple ([2601:645:c688:3880:f06f:7e88:bc94:1865]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144f98209ffsm11043513c88.4.2026.09.24.01.09.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Sep 2026 01:09:56 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string parser with tramp-cache loaded From: Yuan Fu <casouri@HIDDEN> In-Reply-To: <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> Date: Thu, 24 Sep 2026 01:09:44 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <B5D0F6D8-D2E0-44B4-9DF5-41BF72B27E38@HIDDEN> References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN> <86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> <86v77wciva.fsf@HIDDEN> <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> X-Mailer: Apple Mail (2.3826.700.81) X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 81905 Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, chuxubank@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) > On Sep 23, 2026, at 8:29=E2=80=AFAM, Stefan Monnier = <monnier@HIDDEN> wrote: >=20 >>>>> The relevant part of two independent macOS crash reports is = identical: >>>>>=20 >>>>> Fmake_closure >>>>> tramp-flush-file-function >>>>> Frun_hook_with_args >>>>> Fkill_buffer >>>>> treesit_delete_parser >>>>> sweep_vectors >>>>> garbage_collect >>>>> Fgarbage_collect > [...] >>> Tree-sitter parser does kill the associated buffer, if the parser is >>> created from treesit-parse-string. Is it safe to kill a buffer = during gc? >> I don't know. Maybe Stefan does. >=20 > The above backtrace shows it's not. We can try and make it safe, but > I think that would make sense only for a limited class of buffers, > e.g. one where we know that we don't need to run anything like > `kill-buffer-hook` when we kill them. >=20 > AFAICT, this is the case here: those buffers are special, internal > buffers, so I think we could make it safe, but maybe a better option = is > to refrain from killing them and instead keep a buffer ready for use = by > `treesit-parse-string`, like we do with ` *code-conversion-work*`. Sharing a buffer brings can work but it=E2=80=99ll be weird. To make = treesit-node-text still work (which returns the text over which the node = spans), we=E2=80=99d need to store the string in the parser instead, and = use that string in treesit-node-text for parsers created by = treesit-parse-string. We also need to disable reparse for all the = parsers in that work buffer. And there might be other things we need to = handle differently. Alternatively we allow a parser to be buffer-less. Last time I looked at = it I deemed it too much work but now without that memory it doesn=E2=80=99= t seem that bad. I=E2=80=99ll take another jab at that. Yuan=
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.Received: (at 81905) by debbugs.gnu.org; 23 Sep 2026 16:17:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 23 12:17:46 2026 Received: from localhost ([127.0.0.1]:45468 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1x9PfF-0003ja-Av for submit <at> debbugs.gnu.org; Wed, 23 Sep 2026 12:17:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37332) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1x9PfB-0003hw-0F for 81905 <at> debbugs.gnu.org; Wed, 23 Sep 2026 12:17:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1x9Pf3-0003u4-OX; Wed, 23 Sep 2026 12:17:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ao4bAyNVaI884qfZfiP4lDDw12lFmHNXISNZavHM/vk=; b=MvPsPNpu7aBr XQhLjEBWgDoWun349zmQmLDyLIrWpMiuFe8tsEqBzt5R9C8gQplEZ3nXAdqG6jp61GR7wY3xDNefh PAYvf9E+0WcUeQ0zI6AuHbWb0fJcv4PaD1ITjF4Y/BSgNt+jWG4SnUK4kIlWR2Se3CevH1CPJGjTU edvamYKcwv0xRnkSGMmXIAzufB6tiBVdLM05W0nXsjIqVMXMGpZHC/JMv8mJFMmZQIDxZ2mH7J+T6 EYX1xoOr1wkqKW28uSj1jcyKTSQUnFDbc3fhoWO3UZCBg9dtdIfFsovafMbI87RPmOLmZQqz5fDnx iiMLVI0u9qSns9R35JYYXQ==; Date: Wed, 23 Sep 2026 19:17:31 +0300 Message-Id: <86y0csaqn8.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Wed, 23 Sep 2026 11:29:27 -0400) Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string parser with tramp-cache loaded References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN> <86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> <86v77wciva.fsf@HIDDEN> <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 81905 Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, casouri@HIDDEN, chuxubank@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: Yuan Fu <casouri@HIDDEN>, chuxubank@HIDDEN, michael.albinus@HIDDEN, > 81905 <at> debbugs.gnu.org > Date: Wed, 23 Sep 2026 11:29:27 -0400 > > [ BTW, I just noticed that `coding.c` uses ` *code-conversion-work*` > while `fileio.c` uses ` *code-converting-work*`. ] Once upon a time (in Emacs 21) it was the same name. I guess someone wanted to improve spelling at some point...
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.Received: (at 81905) by debbugs.gnu.org; 23 Sep 2026 15:29:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 23 11:29:40 2026 Received: from localhost ([127.0.0.1]:59657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1x9Oug-00045g-GC for submit <at> debbugs.gnu.org; Wed, 23 Sep 2026 11:29:40 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:31603) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1x9Oud-00044Y-80 for 81905 <at> debbugs.gnu.org; Wed, 23 Sep 2026 11:29:36 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B84A0441257; Wed, 23 Sep 2026 11:29:29 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1790177368; bh=VvjkgTnjEFunAH2wRtQZHN9xJbGR7jNvalIyE4YLjj8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=bpWEkGgaQ0nxkDijWWvz24hQUpwBv9aj4/d93XuB9dZ0EMsxCiRhgfiAKITWGRYYo D5V0kQDblr6lzNk9JJ1Y+PosWtg/H66QrpDFG7u34ullBrsbkbr1cJGWpAmODzIhsX TgEzLxNXjEYx5Kyd/9n39dFF19PtsW44k56Mrh5SS6TRJFPXe7zImK1Vs+1fNNYk7C lr/G9w6VtcGOzhqc4W7n4qIdNj5SDQlANs81IdLXfZFiDZ7OJR8NNXXNNDa9phmLPy 55w77m9SWjp9Sow4pvx87xTh6792aMJ39WCNYp1x9CRP9P5iCDaM/EHUVIuYhYUSbh xpMGbVYgSfhSQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9AFAD441170; Wed, 23 Sep 2026 11:29:28 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 7DE57120230; Wed, 23 Sep 2026 11:29:28 -0400 (EDT) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string parser with tramp-cache loaded In-Reply-To: <86v77wciva.fsf@HIDDEN> Message-ID: <jwvfqz0j8te.fsf-monnier+emacs@HIDDEN> References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN> <86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> <86v77wciva.fsf@HIDDEN> Date: Wed, 23 Sep 2026 11:29:27 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.157 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 81905 Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, Yuan Fu <casouri@HIDDEN>, chuxubank@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) >> >> The relevant part of two independent macOS crash reports is identical: >> >> >> >> Fmake_closure >> >> tramp-flush-file-function >> >> Frun_hook_with_args >> >> Fkill_buffer >> >> treesit_delete_parser >> >> sweep_vectors >> >> garbage_collect >> >> Fgarbage_collect [...] >> Tree-sitter parser does kill the associated buffer, if the parser is >> created from treesit-parse-string. Is it safe to kill a buffer during gc? > I don't know. Maybe Stefan does. The above backtrace shows it's not. We can try and make it safe, but I think that would make sense only for a limited class of buffers, e.g. one where we know that we don't need to run anything like `kill-buffer-hook` when we kill them. AFAICT, this is the case here: those buffers are special, internal buffers, so I think we could make it safe, but maybe a better option is to refrain from killing them and instead keep a buffer ready for use by `treesit-parse-string`, like we do with ` *code-conversion-work*`. === Stefan [ BTW, I just noticed that `coding.c` uses ` *code-conversion-work*` while `fileio.c` uses ` *code-converting-work*`. ]
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.
Received: (at 81905) by debbugs.gnu.org; 23 Sep 2026 11:23:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 23 07:23:02 2026
Received: from localhost ([127.0.0.1]:51586 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1x9L3v-0004uJ-4l
for submit <at> debbugs.gnu.org; Wed, 23 Sep 2026 07:23:01 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:52726)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1x9L3k-0004ri-4z
for 81905 <at> debbugs.gnu.org; Wed, 23 Sep 2026 07:22:51 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
id 1x9L3c-00080n-Pp; Wed, 23 Sep 2026 07:22:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
Date; bh=nShPhXNtUET5W5zxJeXmPizPGdfke/CFCLPPlRTqn2I=; b=mqHR04GsP6hisEQI4BHd
uw2Fit77hEBXAPxDYFi0/06xtem/P9M1ek7nmSUqAuP7Uwv/9FdB848Sjz+2/Bnt4MnsYfOocARjU
T9eRVs9aUxrHuLI1GMP8uuF1x+D5GKya4uwRJT+FWPphRwIILp+VGelPhdmRURwTc9tpnl5mb4uk4
qkQRMTh35YaCwQ5pKUc6LnUOf1CJMjZDpFqjDoa9EvYC1P/YUOKF8wC11YivLPPqP32jRdMMAE+Bz
Xpq4mx4/yJX3ROntNwh7QIP/DCI+tYbJzLpq8jRK2f4FRuJlfjL2zceww64JdM3S1Mqlg2j+xDPB6
4ZHN2qMKNnDkMw==;
Date: Wed, 23 Sep 2026 14:22:33 +0300
Message-Id: <86v77wciva.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Yuan Fu <casouri@HIDDEN>,
Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN> (message from
Yuan Fu on Tue, 22 Sep 2026 20:39:02 -0700)
Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string
parser with tramp-cache loaded
References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN>
<86se32et9m.fsf@HIDDEN> <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 81905
Cc: 81905 <at> debbugs.gnu.org, michael.albinus@HIDDEN, chuxubank@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)
> From: Yuan Fu <casouri@HIDDEN>
> Date: Tue, 22 Sep 2026 20:39:02 -0700
> Cc: Misaka <chuxubank@HIDDEN>,
> Michael Albinus <michael.albinus@HIDDEN>,
> 81905 <at> debbugs.gnu.org
>
>
>
> > On Sep 21, 2026, at 4:30 AM, Eli Zaretskii <eliz@HIDDEN> wrote:
> >
> >> Date: Mon, 21 Sep 2026 15:29:28 +0800
> >> From: Misaka via "Bug reports for GNU Emacs,
> >> the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> >>
> >>
> >> Emacs aborts while garbage-collecting a temporary tree-sitter parser created by `treesit-parse-string' when `tramp-cache' is loaded.
> >>
> >> Recipe from emacs -Q
> >> ====================
> >>
> >> Install any tree-sitter grammar supported by Emacs, adjust
> >> `treesit-extra-load-path' as needed, and evaluate the following. This
> >> example uses YAML only because it is short:
> >>
> >> (add-to-list 'treesit-extra-load-path
> >> "/path/to/tree-sitter/grammars")
> >> (require 'treesit)
> >> (require 'tramp-cache)
> >>
> >> (dotimes (_ 20)
> >> (treesit-parse-string "a: 1\nb:\n - c\n" 'yaml)
> >> (garbage-collect))
> >>
> >> Observed result
> >> ===============
> >>
> >> Emacs aborts with SIGABRT (exit status 134), normally on the first
> >> iteration. I reproduced this with `emacs --batch --quick', without
> >> GCMH or my init files.
> >>
> >> This is not specific to YAML. I ran the same test independently with
> >> four grammars and inputs:
> >>
> >> yaml "a: 1\nb:\n - c\n" exit 134
> >> json "{\"a\":1,\"b\":[2]}" exit 134
> >> python "def f():\n return 1\n" exit 134
> >> c "int main(void) { return 0; }" exit 134
> >>
> >> The relevant part of two independent macOS crash reports is identical:
> >>
> >> Fmake_closure
> >> tramp-flush-file-function
> >> Frun_hook_with_args
> >> Fkill_buffer
> >> treesit_delete_parser
> >> sweep_vectors
> >> garbage_collect
> >> Fgarbage_collect
> >>
> >> `treesit_delete_parser' calls `Fkill_buffer' while sweeping a parser
> >> whose `need_to_gc_buffer' flag is set. This runs the global
> >> `kill-buffer-hook' during GC. The native-compiled
> >> `tramp-flush-file-function' then reaches `Fmake_closure', which signals
> >> an error while GC is active; Emacs subsequently aborts.
> >>
> >> Control experiment
> >> ==================
> >>
> >> Removing only the Tramp hook prevents the crash:
> >>
> >> (remove-hook 'kill-buffer-hook #'tramp-flush-file-function)
> >>
> >> With that change, the same `treesit-parse-string' plus
> >> `garbage-collect' loop completes 500 iterations. Without it, the
> >> minimal recipe exits with status 134.
> >>
> >> The crash was observed twice on the same build, once after a
> >> long-running session and once about 85 seconds after startup. The full
> >> macOS crash reports are available on request.
> >>
> >> Build under test
> >> ================
> >>
> >> Emacs 31.1
> >> Repository revision: a360712c9d272d950d8d8255ef74570f7e90b7d9
> >> System: aarch64-apple-darwin25.6.0
> >> macOS 27.0 (26A428), Apple Silicon
> >> Tree-sitter library: 0.27
> >>
> >> I searched the bug-gnu-emacs archive for `treesit_delete_parser',
> >> `tramp-flush-file-function', and `Fmake_closure', but did not find a
> >> report with the same reproducer and stack trace.
> >
> > Thanks, adding Michael and Yuan to the discussion.
>
> Tree-sitter parser does kill the associated buffer, if the parser is created from treesit-parse-string. Is it safe to kill a buffer during gc?
I don't know. Maybe Stefan does.
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.
Received: (at 81905) by debbugs.gnu.org; 23 Sep 2026 03:39:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 22 23:39:23 2026
Received: from localhost ([127.0.0.1]:50029 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1x9DpK-0005vm-MP
for submit <at> debbugs.gnu.org; Tue, 22 Sep 2026 23:39:23 -0400
Received: from mail-dl2-x0e.google.com ([2607:f8b0:4864:38::e]:49490)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1x9DpI-0005uW-1D
for 81905 <at> debbugs.gnu.org; Tue, 22 Sep 2026 23:39:20 -0400
Received: by mail-dl2-x0e.google.com with SMTP id
a92af1059eb24-144f47a9b57so486482c88.2
for <81905 <at> debbugs.gnu.org>; Tue, 22 Sep 2026 20:39:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20251104; t=1790134754; x=1790739554; darn=debbugs.gnu.org;
h=to:references:message-id:content-transfer-encoding:cc:date
:in-reply-to:from:subject:mime-version:content-type:from:to:cc
:subject:date:message-id:reply-to:content-type;
bh=qV1NszgIT4wLv5l7nzkAVA+KmZpl48BMtdKZqVzkoWU=;
b=MrPEvhCOrLZjeQyUHx6F1pWsiS8VxrEmcuqXJXwfn8d3tcpPb3Y4Wxt4O0sBZhMHqn
lyDeIVGhkkO81jOXEy8CRCe+39M0jpd+XEO/9eF6/R+0B7UgNsidp/VkgZaaUhudWA3J
JSehIsR4GGjAkEi0qDMvfnNvX+Nh6kwMrXyF+XMIqITDMTedVF4/RYwYy220nVwbR0yG
n8bfHO+CPl0TRiHTg1iCOlBi9luLMQbFPbUwkbbiN8ri67QXDyYlGkBmJ7cj1GoeT748
QYJ1tPKxDvMyrcy96G7kFkF9kcVbCdjW80FOc7oIbPvMFCDhO2slsQ5gTrt4gcvaZ2t2
iS/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20260707; t=1790134754; x=1790739554;
h=to:references:message-id:content-transfer-encoding:cc:date
:in-reply-to:from:subject:mime-version:content-type:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
:content-type;
bh=qV1NszgIT4wLv5l7nzkAVA+KmZpl48BMtdKZqVzkoWU=;
b=2kbP7uPkOQUuoXc75Senaz4zsio4vtoKR9bouB36eyJpCDC8V/gTS0cLVc+5tPeqdA
nXJ5rJWT6t+KJgxjh7onltaei7Ko0QZ4c6tB/7bGQocdoGWlrxg468i4FZp78bQS7kNb
4DLX8u/l48sKMVMDASqsNEkZJs+0a0wZiUGvrEvXkSJwDj4vKA5nHeae9Psw/9iXO976
vzzLkrkW6JUBoPa1EYCXWSMy2+4s4h0uc2qwobVRSAhQsWg54/VsaU71pPHJGcsF8ta5
kXHrrw49TcwFGDPO1Tw3S9eOX4e4Xucf+RIH2en9lgJc4bJuX8k+xdJL3KNO4+FzL777
ny2A==
X-Forwarded-Encrypted: i=1;
AKwUvBwOHriPviU0CpENscI4+cAj4tOiZ0/yEA+xd8Faz+fR7JAewFpTWqcKH5n7WgOXtjK2qYfbIQ==@debbugs.gnu.org
X-Gm-Message-State: AFuF++mouCBv0fy+4+pfdASi6MCPAEvxPz723jBRPBjsiSo8xc0ziBm2
LADCtwf+iQ/h1nph6ksUaxOxhHy+dCsdXmZywLCww5T+qdPY32WYGAhF
X-Gm-Gg: AYBFou3ZEtBK6lTNLGN9olFcSX8YKjUe0uf1QC5pwxtfZoYhGf84BBq0dM8NcoCNNay
HY4lzfDsEeUe3+inxyuEOUy0sJZsPmrk5cGtzkxrftT8hlJJ7v4qdT3EeU6+RBVzB8+HR953VFn
CsTxS//O+C74CAgVjE2KSr6fc3NjDRdDZcdWQek+YTedLNTsEtYEraW5L9A5QCoC8lQkRadcxy8
KCPU7sLwlQpKf5cfRRnscon89QlVVUgU29D1kDN3PFaXbNFDK9rWgwSpMeBHKMRfl+/ji2ipy2l
hfAZ41kgXpNGEOKpCgz60mcy7MqUDPAWRg2AmkEanhkjQkBLZQjnTP6/3p4GJ9XqNr0CDV+J+Se
zPjLadeCw5QxTWgE8jg9KcBYabjn+SuBixiWCT9JJB0aWOKeGOWMvHiPWPiOsrV2jwjo9Vk3t0I
hEqwuRphtTKLtZ15wOboyN7s+GvgPRFMS8J8/5BFmuKLZiHUq1vn4JuO2c1P+wgSQ51y0Er4y20
+NeGPIVPlH31/Ukx/2pwA==
X-Received: by 2002:a05:701b:4515:10b0:130:7246:10aa with SMTP id
a92af1059eb24-144f90f7b14mr1622565c88.12.1790134753747;
Tue, 22 Sep 2026 20:39:13 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c688:3880:f06f:7e88:bc94:1865])
by smtp.gmail.com with ESMTPSA id
a92af1059eb24-144f983c5a1sm3542429c88.7.2026.09.22.20.39.12
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Tue, 22 Sep 2026 20:39:13 -0700 (PDT)
Content-Type: text/plain;
charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#81905: 31.1; SIGABRT when GC collects a treesit-parse-string
parser with tramp-cache loaded
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <86se32et9m.fsf@HIDDEN>
Date: Tue, 22 Sep 2026 20:39:02 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <DFEFB502-3D92-49E8-8D7C-CD5259846778@HIDDEN>
References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN>
<86se32et9m.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 81905
Cc: 81905 <at> debbugs.gnu.org, Michael Albinus <michael.albinus@HIDDEN>,
Misaka <chuxubank@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)
> On Sep 21, 2026, at 4:30=E2=80=AFAM, Eli Zaretskii <eliz@HIDDEN> =
wrote:
>=20
>> Date: Mon, 21 Sep 2026 15:29:28 +0800
>> From: Misaka via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>=20
>>=20
>> Emacs aborts while garbage-collecting a temporary tree-sitter parser =
created by `treesit-parse-string' when `tramp-cache' is loaded.
>>=20
>> Recipe from emacs -Q
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Install any tree-sitter grammar supported by Emacs, adjust
>> `treesit-extra-load-path' as needed, and evaluate the following. =
This
>> example uses YAML only because it is short:
>>=20
>> (add-to-list 'treesit-extra-load-path
>> "/path/to/tree-sitter/grammars")
>> (require 'treesit)
>> (require 'tramp-cache)
>>=20
>> (dotimes (_ 20)
>> (treesit-parse-string "a: 1\nb:\n - c\n" 'yaml)
>> (garbage-collect))
>>=20
>> Observed result
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Emacs aborts with SIGABRT (exit status 134), normally on the first
>> iteration. I reproduced this with `emacs --batch --quick', without
>> GCMH or my init files.
>>=20
>> This is not specific to YAML. I ran the same test independently with
>> four grammars and inputs:
>>=20
>> yaml "a: 1\nb:\n - c\n" exit 134
>> json "{\"a\":1,\"b\":[2]}" exit 134
>> python "def f():\n return 1\n" exit 134
>> c "int main(void) { return 0; }" exit 134
>>=20
>> The relevant part of two independent macOS crash reports is =
identical:
>>=20
>> Fmake_closure
>> tramp-flush-file-function
>> Frun_hook_with_args
>> Fkill_buffer
>> treesit_delete_parser
>> sweep_vectors
>> garbage_collect
>> Fgarbage_collect
>>=20
>> `treesit_delete_parser' calls `Fkill_buffer' while sweeping a parser
>> whose `need_to_gc_buffer' flag is set. This runs the global
>> `kill-buffer-hook' during GC. The native-compiled
>> `tramp-flush-file-function' then reaches `Fmake_closure', which =
signals
>> an error while GC is active; Emacs subsequently aborts.
>>=20
>> Control experiment
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Removing only the Tramp hook prevents the crash:
>>=20
>> (remove-hook 'kill-buffer-hook #'tramp-flush-file-function)
>>=20
>> With that change, the same `treesit-parse-string' plus
>> `garbage-collect' loop completes 500 iterations. Without it, the
>> minimal recipe exits with status 134.
>>=20
>> The crash was observed twice on the same build, once after a
>> long-running session and once about 85 seconds after startup. The =
full
>> macOS crash reports are available on request.
>>=20
>> Build under test
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Emacs 31.1
>> Repository revision: a360712c9d272d950d8d8255ef74570f7e90b7d9
>> System: aarch64-apple-darwin25.6.0
>> macOS 27.0 (26A428), Apple Silicon
>> Tree-sitter library: 0.27
>>=20
>> I searched the bug-gnu-emacs archive for `treesit_delete_parser',
>> `tramp-flush-file-function', and `Fmake_closure', but did not find a
>> report with the same reproducer and stack trace.
>=20
> Thanks, adding Michael and Yuan to the discussion.
Tree-sitter parser does kill the associated buffer, if the parser is =
created from treesit-parse-string. Is it safe to kill a buffer during =
gc?
Yuan=
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.
Received: (at 81905) by debbugs.gnu.org; 21 Sep 2026 11:30:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 21 07:30:55 2026
Received: from localhost ([127.0.0.1]:46147 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1x8cEV-0003xH-H0
for submit <at> debbugs.gnu.org; Mon, 21 Sep 2026 07:30:54 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50320)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1x8cEP-0003mc-Qi
for 81905 <at> debbugs.gnu.org; Mon, 21 Sep 2026 07:30:48 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
id 1x8cEI-00061d-4o; Mon, 21 Sep 2026 07:30:38 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
mime-version; bh=fF5O3MgFT27wuGpwiPQFy36N4JnnEQZgomuSWU6M848=; b=MYFkI6EJjsU8
DvFMeg1iHpNHFeoKOhJm045YxwF1OsDbO6bGiIW2xGLpjtAV5+WJCxzvTDw1qOt4k7V/vZHpRvqPN
/QUDnSq63FvXxmufMRnvmYpuX6UjKpRdBLZAf0OiiExQe3XYWtj+/jMKxc6drlPOxG92wjRi32prW
YDkxo5lo+yiwdwqaVNIm4i91PH60PHf+l5VgL1nk4kZ7joQxiNuqdbM9U9F1jlqNhNxba6Z4rnfMb
toUh2NamF1cn39f3zzSwJwwlTlBUJf04BySvNEcpCMrRm0+y78mTaHAlU8qwwI4sLod/5ZDueChqs
VkexKmS/HbsfksMTT8VKDQ==;
Date: Mon, 21 Sep 2026 14:30:29 +0300
Message-Id: <86se32et9m.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Misaka <chuxubank@HIDDEN>, Yuan Fu <casouri@HIDDEN>,
Michael Albinus <michael.albinus@HIDDEN>
In-Reply-To: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN>
(bug-gnu-emacs@HIDDEN)
Subject: Re: bug#81905: 31.1;
SIGABRT when GC collects a treesit-parse-string parser with
tramp-cache loaded
References: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 81905
Cc: 81905 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)
> Date: Mon, 21 Sep 2026 15:29:28 +0800
> From: Misaka via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>
>
> Emacs aborts while garbage-collecting a temporary tree-sitter parser created by `treesit-parse-string' when `tramp-cache' is loaded.
>
> Recipe from emacs -Q
> ====================
>
> Install any tree-sitter grammar supported by Emacs, adjust
> `treesit-extra-load-path' as needed, and evaluate the following. This
> example uses YAML only because it is short:
>
> (add-to-list 'treesit-extra-load-path
> "/path/to/tree-sitter/grammars")
> (require 'treesit)
> (require 'tramp-cache)
>
> (dotimes (_ 20)
> (treesit-parse-string "a: 1\nb:\n - c\n" 'yaml)
> (garbage-collect))
>
> Observed result
> ===============
>
> Emacs aborts with SIGABRT (exit status 134), normally on the first
> iteration. I reproduced this with `emacs --batch --quick', without
> GCMH or my init files.
>
> This is not specific to YAML. I ran the same test independently with
> four grammars and inputs:
>
> yaml "a: 1\nb:\n - c\n" exit 134
> json "{\"a\":1,\"b\":[2]}" exit 134
> python "def f():\n return 1\n" exit 134
> c "int main(void) { return 0; }" exit 134
>
> The relevant part of two independent macOS crash reports is identical:
>
> Fmake_closure
> tramp-flush-file-function
> Frun_hook_with_args
> Fkill_buffer
> treesit_delete_parser
> sweep_vectors
> garbage_collect
> Fgarbage_collect
>
> `treesit_delete_parser' calls `Fkill_buffer' while sweeping a parser
> whose `need_to_gc_buffer' flag is set. This runs the global
> `kill-buffer-hook' during GC. The native-compiled
> `tramp-flush-file-function' then reaches `Fmake_closure', which signals
> an error while GC is active; Emacs subsequently aborts.
>
> Control experiment
> ==================
>
> Removing only the Tramp hook prevents the crash:
>
> (remove-hook 'kill-buffer-hook #'tramp-flush-file-function)
>
> With that change, the same `treesit-parse-string' plus
> `garbage-collect' loop completes 500 iterations. Without it, the
> minimal recipe exits with status 134.
>
> The crash was observed twice on the same build, once after a
> long-running session and once about 85 seconds after startup. The full
> macOS crash reports are available on request.
>
> Build under test
> ================
>
> Emacs 31.1
> Repository revision: a360712c9d272d950d8d8255ef74570f7e90b7d9
> System: aarch64-apple-darwin25.6.0
> macOS 27.0 (26A428), Apple Silicon
> Tree-sitter library: 0.27
>
> I searched the bug-gnu-emacs archive for `treesit_delete_parser',
> `tramp-flush-file-function', and `Fmake_closure', but did not find a
> report with the same reproducer and stack trace.
Thanks, adding Michael and Yuan to the discussion.
bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 21 Sep 2026 10:44:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 21 06:44:15 2026
Received: from localhost ([127.0.0.1]:34074 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1x8bVH-0004mq-HN
for submit <at> debbugs.gnu.org; Mon, 21 Sep 2026 06:44:15 -0400
Received: from lists1p.gnu.org ([2001:470:142::17]:53162)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <chuxubank@HIDDEN>) id 1x8YUP-0000t1-7D
for submit <at> debbugs.gnu.org; Mon, 21 Sep 2026 03:31:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <chuxubank@HIDDEN>) id 1x8YUJ-0005DC-2O
for bug-gnu-emacs@HIDDEN; Mon, 21 Sep 2026 03:30:55 -0400
Received: from xmbghk7.mail.qq.com ([43.163.128.52])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <chuxubank@HIDDEN>) id 1x8YUB-0004fa-LW
for bug-gnu-emacs@HIDDEN; Mon, 21 Sep 2026 03:30:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512;
t=1789975838; bh=8+WRtklD5u1cPWr6Rc19A47mEke7egcQKnm6hw5k/kc=;
h=From:To:Subject:Date;
b=bgRRdczdZsulvelkxdJ73PcoX8d7Spm7e5bQHfbY4+P/jZP+Sa/d7EjX3h28j9jhw
Q6AXt2TVHJ2gddVz/aFM4d8XHBwGa8vq7n+sHOFt33PMEFwqy50xnA1VcHwE1AQ9WR
ecSwYSKiT0kkOsUZiseBdjBVgu0+AMO9Y6nvTWC0=
Received: from IVSH-LP-00046.local ([218.1.222.164])
by newxmesmtplogicsvrszc43-0.qq.com (NewEsmtp) with SMTP
id 75D25CCF; Mon, 21 Sep 2026 15:29:29 +0800
X-QQ-mid: xmsmtpt1789975769t2okez16d
Message-ID: <tencent_C9B922928A8E8BB45247758C40220F0A3B05@HIDDEN>
X-QQ-XMAILINFO: MQAOa38Yz/8/B3G427xcvVtQXtWKAyqU0P7yUbPEdKgXJWaqadB9EN5fnEoK4B
6avAf7BfjA/uQstoPSB9UYcABH0ky/ge6nRApLgFucGDRHf91xJKnxBFOkEMbHDH+BowPkKGjLl/
FmMHIDlQ2b2KQVNYOwTqJV3sCHft2y6ssXgO23M+IdrYEjMlqmjZSXKDayn+TmzhbIKfv78fSHfQ
wnqskvjY+sQI8G07hrWFjBZOs8RFvWpguKhotJQ2dk1wuKLbcYL+iGZTLmyI8cWWDgNYB14XnFdh
qj/p7Eg5esdd+zvFY+iTZuzuKZEBQYl8VaiPFEToU0F5KlXyDfgZGE+MsJfAb1bH8XBalUhFa50K
MDXQR2wTVwzv0Ewv1nP+kkunOLRgZ+/59syvHRhfDGWe4Cvj/J1jNdF3XHQ+Orbegfpp38QDy8+Q
ssw25PSbLxxHJeLvSQ+cCnDFnWtYubOxuW2pL/RIS7kNBEvncWXiKeH0zd+8+gHVeLHkLos/4mxL
7BWehG8H0VriNIZBpH/y0Mqj8rnOETejPtZdoWYJTDoyHpkVDqeMlVfnEVkaGKJXO/+YWVPPGT5i
HUkrzpIAA9vU+z2xNbBj8/A7rXN6REyxXqJtRb83tMwxXgT4/DbVizw70OUJtrUu/9RdDfQfSafQ
SesYvXWJjb4Od3P7ERD1yvYY0g0HfedGwFARGMGO/hpUNIPx7LPh9Oi2k8SyR0d/yR/3kNcvH4K3
PzYXtFI995x8rr5f6vO0VzBNq1bCwHZuuYl4iyepxwJOUc/MMf3cLymSphItUCp6j0D7tl6DF1Ih
13jt8NSX+AuHYzMDSFbe/1cVmB1KxKA5W3crCL+hHvFJ+KDK7sEosRQPMHUkh7RrW+1VYrKthZkW
h65ObYreQJjQ+4ewHEGxkl3D4+xmps6EkuzEvKh4vhnGFCaXaNEDI8xWZl33lcwaKSbbNQG/LUve
PbUf4JWHclTt4SDdn1zLa4Rhil9UDRZKzgYnIFFXVIk6esAKeK7M8qdHk+wJdiSSPXC5Ft70nWbV
ET1eHmRj6va4zk2DtWJKq8Sv2fzW0=
X-QQ-XMRINFO: NyFYKkN4Ny6FuXrnB5Ye7Aabb3ujjtK+gg==
From: Misaka <chuxubank@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.1; SIGABRT when GC collects a treesit-parse-string parser with
tramp-cache loaded
X-Debbugs-Cc:
Date: Mon, 21 Sep 2026 15:29:28 +0800
X-OQ-MSGID: <m2ld8voyef.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=43.163.128.52; envelope-from=chuxubank@HIDDEN;
helo=xmbghk7.mail.qq.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01,
SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
has NOT identified this incoming email as spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: Emacs aborts while garbage-collecting a temporary tree-sitter
parser created by `treesit-parse-string' when `tramp-cache' is loaded. Recipe
from emacs -Q ==================== Install any tree-sitter grammar supported
by Emacs, adjust `treesit-extra-load-path' as needed,
and evaluate the following.
This example uses YAML only because it is short:
Content analysis details: (1.7 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org]
1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail)
-0.0 SPF_HELO_PASS SPF: HELO matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (chuxubank[at]qq.com)
0.7 SPOOFED_FREEMAIL No description available.
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Mon, 21 Sep 2026 06:44:06 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)
Emacs aborts while garbage-collecting a temporary tree-sitter parser created by `treesit-parse-string' when `tramp-cache' is loaded.
Recipe from emacs -Q
====================
Install any tree-sitter grammar supported by Emacs, adjust
`treesit-extra-load-path' as needed, and evaluate the following. This
example uses YAML only because it is short:
(add-to-list 'treesit-extra-load-path
"/path/to/tree-sitter/grammars")
(require 'treesit)
(require 'tramp-cache)
(dotimes (_ 20)
(treesit-parse-string "a: 1\nb:\n - c\n" 'yaml)
(garbage-collect))
Observed result
===============
Emacs aborts with SIGABRT (exit status 134), normally on the first
iteration. I reproduced this with `emacs --batch --quick', without
GCMH or my init files.
This is not specific to YAML. I ran the same test independently with
four grammars and inputs:
yaml "a: 1\nb:\n - c\n" exit 134
json "{\"a\":1,\"b\":[2]}" exit 134
python "def f():\n return 1\n" exit 134
c "int main(void) { return 0; }" exit 134
The relevant part of two independent macOS crash reports is identical:
Fmake_closure
tramp-flush-file-function
Frun_hook_with_args
Fkill_buffer
treesit_delete_parser
sweep_vectors
garbage_collect
Fgarbage_collect
`treesit_delete_parser' calls `Fkill_buffer' while sweeping a parser
whose `need_to_gc_buffer' flag is set. This runs the global
`kill-buffer-hook' during GC. The native-compiled
`tramp-flush-file-function' then reaches `Fmake_closure', which signals
an error while GC is active; Emacs subsequently aborts.
Control experiment
==================
Removing only the Tramp hook prevents the crash:
(remove-hook 'kill-buffer-hook #'tramp-flush-file-function)
With that change, the same `treesit-parse-string' plus
`garbage-collect' loop completes 500 iterations. Without it, the
minimal recipe exits with status 134.
The crash was observed twice on the same build, once after a
long-running session and once about 85 seconds after startup. The full
macOS crash reports are available on request.
Build under test
================
Emacs 31.1
Repository revision: a360712c9d272d950d8d8255ef74570f7e90b7d9
System: aarch64-apple-darwin25.6.0
macOS 27.0 (26A428), Apple Silicon
Tree-sitter library: 0.27
I searched the bug-gnu-emacs archive for `treesit_delete_parser',
`tramp-flush-file-function', and `Fmake_closure', but did not find a
report with the same reproducer and stack trace.
In GNU Emacs 31.1 (build 1, aarch64-apple-darwin25.6.0, NS
appkit-2685.70 Version 26.6.2 (Build 25G83)) of 2026-09-08 built on
sjc22-be108-e0e9150a-10c8-464d-be09-da8e242aab28-42C815408563.local
Repository revision: a360712c9d272d950d8d8255ef74570f7e90b7d9
Repository branch: HEAD
Windowing system distributor 'Apple', version 10.3.2775
System Description: macOS 27.0
Configured using:
'configure 'CFLAGS=-DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT
-I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include'
'LDFLAGS=-L/opt/homebrew/lib/gcc/current
-Wl,-rpath,/opt/homebrew/lib/gcc/current'
--enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --with-ns
--with-native-compilation=aot --with-xwidgets --with-tree-sitter
--with-mailutils --with-modules --with-rsvg --with-webp --without-dbus
--without-compress-install'
Configured features:
ACL GLIB GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS
PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP XIM XWIDGETS ZLIB
Important settings:
value of $EMACSLOADPATH: /opt/homebrew/share/emacs/site-lisp:/Users/misaka/.local/share/emacs/site-lisp:
value of $LC_ALL: en_US.UTF-8
value of $LANG: C.UTF-8
locale-coding-system: utf-8-unix
Major mode: Fundamental
Minor modes in effect:
org-edna-mode: t
org-media-note-mode: t
pdf-occur-global-minor-mode: t
global-org-modern-mode: t
magit-todos-mode: t
global-git-commit-mode: t
gcmh-mode: t
savehist-mode: t
save-place-mode: t
global-auto-revert-mode: t
eldoc-box-hover-at-point-mode: t
diff-hl-flydiff-mode: t
type-break-query-mode: t
type-break-mode-line-message-mode: t
type-break-mode: t
midnight-mode: t
ace-pinyin-global-mode: t
ns-auto-titlebar-mode: t
global-ligature-mode: t
nerd-icons-completion-mode: t
doom-modeline-mode: t
beacon-mode: t
pulsar-global-mode: t
diff-hl-margin-mode: t
global-diff-hl-mode: t
solaire-global-mode: t
ultra-scroll-mode: t
pixel-scroll-precision-mode: t
marginalia-mode: t
breadcrumb-mode: t
winner-mode: t
windmove-mode: t
winum-mode: t
activities-tabs-mode: t
activities-mode: t
sow-mode: t
corfu-prescient-mode: t
corfu-popupinfo-mode: t
global-corfu-mode: t
vertico-prescient-mode: t
prescient-persist-mode: t
vertico-mode: t
which-key-mode: t
poly-treesit-fold-mode: t
global-treesit-fold-indicators-mode: t
global-sideline-mode: t
undo-fu-session-global-mode: t
global-flycheck-mode: t
meow-cjk-mode: t
meow-global-mode: t
meow-normal-mode: t
meow-esc-mode: t
recentf-mode: t
repeat-mode: t
global-so-long-mode: t
delete-selection-mode: t
override-global-mode: t
package-vc-skip-unchanged-mode: t
server-mode: t
apheleia-global-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-history-mode: t
tab-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
minibuffer-nonselected-mode: t
minibuffer-regexp-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/Users/misaka/.config/emacs/elpa/transient-0.13.8/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-texinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-irc
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-doi hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-doi
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-refile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-refile
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-num hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-num
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-mhe
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-shell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shell
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-eww hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eww
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-macro hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-rmail
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-groovy hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-groovy
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-processing hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-processing
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc-biblatex hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc-csl hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-csl
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-docview
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc-basic hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-basic
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-sed hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sed
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-fold-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-fold-core
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-bibtex
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-csharp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-csharp
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-gnus
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eshell
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-lint hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-lint
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-attach-git hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach-git
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-beamer hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-tempo hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-tempo
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-w3m
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-persist hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-persist
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-fold hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-fold
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-julia hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-julia
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-duration hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-duration
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-makefile hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-info
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-forth hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-forth
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-odt hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-man
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-lua hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lua
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-keys
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eshell
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-md hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-goto hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-goto
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ol-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-koma-letter hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ox hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/misaka/.config/emacs/elpa/org-mode/lisp/oc-natbib hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-natbib
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-element-ast hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element-ast
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/misaka/.config/emacs/elpa/org-mode/lisp/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-cycle hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-cycle
/Users/misaka/.config/emacs/elpa/org-mode/lisp/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
Features:
(tramp-cmds shadow sort mail-extr emacsbug reporter emacs-everywhere
vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs rime rime-predicates
posframe popup tramp-adb tramp-sh image-file image-converter
org-modern-indent valign org-appear org-edna org-media-note
org-media-note-obsidian org-media-note-import org-media-note-mpv
org-media-note-core mpv org-timer org-imgtog cdlatex reftex
reftex-loaddefs reftex-vars texmathp org-pdftools pdf-annot epa-file
gptel-model-updater gptel-model-updater-ui gptel-model-updater-metadata
elisp-dev-mcp info-look info help-fns radix-tree org-mcp org-archive
smartparens-org ob-swiftui smartparens-swift swift-mode swift-mode-imenu
swift-mode-repl swift-mode-font-lock swift-mode-standard-types
swift-mode-fill swift-mode-beginning-of-defun swift-mode-indent
swift-mode-lexer ob-powershell ob-typescript ob-mermaid ob-kotlin ob-go
ob-applescript ob-aider org-dial org-remoteimg url-cache org-yt
ox-awesomecv ox-moderncv ox-altacv org-cv-utils ox-odt rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-md ox-icalendar ox-html ox-mathml
org-latex-preview table ox-beamer ox-latex ox-ascii ox-publish ox
org-attach ob-async facemenu org-noter org-noter-djvu org-noter-nov nov
esxml-query org-noter-pdf pdf-occur ibuf-ext ibuffer ibuffer-loaddefs
tablist tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch
pdf-misc pdf-loader pdf-tools pdf-view pdf-cache pdf-info tq pdf-util
pdf-macs org-noter-core org-indent ol-eww eww vtable url-queue mm-url
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015
mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file svg
xml dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail
yank-media rfc822 mml mml-sec mm-decode mm-bodies mm-encode mailabbrev
gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range
ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
org-habit org-agenda-count alist org-agenda org-element org-persist
org-id avl-tree org-refile org-modern org-crypt org-protocol ob-shell
ob-R ob-python smartparens-python python ob-plantuml ob-C smartparens-c
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs ob-awk org-clock doom-themes-ext-org org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie
executable ob-comint org-element-ast org-pcomplete org-list org-footnote
org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol org-fold org-fold-core org-keys oc org-compat org-loaddefs cal-menu
calendar cal-loaddefs org-version org-macs mcp-server-lib-commands
mcp-server-lib mcp-server-lib-metrics indent-bars-ts gptel-magit
templatel gptel-prompts gptel-ollama gptel-gemini gptel-anthropic
gptel-openai gptel gptel-request emacsql-sqlite-builtin apheleia
apheleia-rcs apheleia-dp apheleia-formatters apheleia-utils apheleia-log
apheleia-formatter-context dabbrev cape yaml-pro consult yaml-pro-format
yaml-pro-edit pangu-spacing olivetti yaml-ts-mode chezmoi-dired
chezmoi-magit magit-todos pcre2el rxt re-builder hl-todo async grep
magit-difftastic difftastic forge-repos forge-tablist forge-topics
forge-commands forge-semi forge-bitbucket forge-gogs forge-gitea
forge-gitlab forge-github forge-client forge-forgejo forge-notify
forge-revnote forge-pullreq forge-issue forge-discussion forge-topic
yaml bug-reference forge-post smartparens-markdown grip-mode
markdown-xwidget mustache xwidget image-mode exif md-babel markdown-mode
forge-repo forge forge-core ghub-graphql treepy gsexp ghub url-http
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw
nsm url-auth let-alist gnutls puny forge-db closql emacsql-sqlite
emacsql emacsql-compiler view magit-bookmark magit-submodule magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log magit-diff which-func smerge-mode git-commit
magit-core magit-autorevert magit-margin magit-transient magit-process
magit-mode benchmark magit-git magit-base magit-section crm
chezmoi-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff
ediff-help ediff-init ediff-util chezmoi-difftastic chezmoi-transient
chezmoi-mode chezmoi-template cursor-sensor doom-gruvbox-light-theme
doom-themes-ext-visual-bell doom-themes doom-themes-base gcmh savehist
saveplace autorevert filenotify chezmoi-core android-mode jka-compr
sideline-flycheck flycheck-gradle flycheck-kotlin eldoc-box
display-line-numbers flyspell ispell hideshow hl-line goggles
diff-hl-flydiff diff indent-bars noutline outline rainbow-mode
smartparens-config smartparens-text smartparens-go smartparens loadhist
copilot copilot-balancer editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch jsonrpc type-break
midnight ace-pinyin pinyinlib avy ns-auto-titlebar ligature
nerd-icons-completion doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core shrink-path beacon pulsar
diff-hl-margin diff-hl-dired dired-rsync-transient dired-rsync dired-aux
tramp-cache time-stamp tramp trampver tramp-integration tramp-message
tramp-compat parse-time iso8601 time-date tramp-loaddefs dired
dired-loaddefs diff-hl log-view log-edit add-log pcvs-util vc-dir ewoc
solaire-mode ultra-scroll pixel-scroll marginalia breadcrumb pulse imenu
winner cus-edit cus-start cus-load windmove winum activities-tabs
activities persist sow time poly-any-go-template
go-template-ts-mode-treesit-fold go-template-ts-mode poly-ansible-jinja2
poly-any-jinja2 jinja2-ts-mode-treesit-fold jinja2-ts-mode
poly-any-template ansible-doc ansible yasnippet f s go-mode find-file
etags fileloop generator xref project compile bookmark
text-property-search corfu-prescient corfu-auto nerd-icons-corfu
corfu-popupinfo corfu vertico-prescient prescient char-fold vertico
which-key poly-treesit-fold polymode poly-lock polymode-base
polymode-weave polymode-export polymode-compat polymode-methods
polymode-core polymode-classes eieio-custom eieio-base
treesit-fold-indicators treesit-fold treesit-fold-summary
treesit-fold-parsers treesit-fold-util sideline ht dash undo-fu-session
+feishu-project flycheck +mcp meow-tree-sitter treesit meow-cjk emt meow
meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims
meow-esc meow-command array meow-thing meow-visual meow-keypad
meow-beacon meow-helpers meow-util color meow-keymap meow-face meow-var
dashboard dashboard-widgets nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon rect recentf tree-widget
wid-edit ffap thingatpt +doom use-package-ensure-system-package
system-packages prosody-nerd-icons prosody-use-package prosody
face-remap exec-path-from-shell repeat so-long delsel delight
benchmark-init mode-transient-use-package mode-transient no-littering
use-package-ignore-builtin use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
use-package-core cat-utils cat-package-vc-skip-unchanged
package-vc-skip-unchanged vc-git diff-mode track-changes files-x
cat-package-use-package cat-package-manifest cat-package-autoloads
package-vc lisp-mnt cat-package-archives cat-module cat-config cat-core
ace-pinyin-autoloads agent-shell-bookmark-autoloads
agent-shell-macext-autoloads agent-shell-manager-autoloads
agent-shell-sidebar-autoloads agent-shell-autoloads acp-autoloads
aider-autoloads aidermacs-autoloads android-mode-autoloads
password-store-menu epa epg rfc6068 epg-config vc vc-dispatcher
transient format-spec edmacro kmacro password-store auth-source-pass
with-editor shell pcomplete comint ansi-osc ansi-color ring server llama
cond-let compat easy-mmode inline pcase package browse-url xdg url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core password-cache json map url-vars finder-inf
derived pp comp cl-seq comp-cstr cl-extra warnings icons subr-x comp-run
comp-common rx names byte-opt cl-macs gv bytecomp byte-compile edebug
debug backtrace help-mode find-func cl-loaddefs cl-lib
anki-vocabulary-autoloads anki-connect-autoloads apheleia-autoloads
applescript-mode-autoloads auctex-autoloads tex-site
avy-embark-collect-autoloads bbdb-autoloads beacon-autoloads
beancount-autoloads benchmark-init-autoloads bing-dict-autoloads
blame-reveal-autoloads breadcrumb-autoloads caddyfile-mode-autoloads
cape-autoloads cdlatex-autoloads chezmoi-mode-autoloads
citar-embark-autoloads citar-org-roam-autoloads citar-autoloads
citeproc-autoloads cmake-font-lock-autoloads cmake-mode-autoloads
code-review-autoloads a-autoloads codeium-autoloads
compile-multi-embark-autoloads compile-multi-nerd-icons-autoloads
compose-preview-autoloads consult-compile-multi-autoloads
compile-multi-autoloads consult-gh-embark-autoloads
consult-gh-forge-autoloads consult-gh-autoloads copilot-autoloads
corfu-prescient-autoloads corfu-autoloads dart-mode-autoloads
dashboard-autoloads deferred-autoloads deft-autoloads delight-autoloads
devdocs-autoloads diagram-preview-autoloads diff-hl-autoloads
dired-git-info-autoloads dired-rsync-transient-autoloads
dired-rsync-autoloads dirvish-autoloads docker-autoloads
docker-compose-mode-autoloads dockerfile-mode-autoloads
doom-modeline-autoloads doom-themes-autoloads dumb-jump-autoloads
easy-hugo-autoloads eldoc-box-autoloads eldoc-toml-autoloads
elfeed-org-autoloads elfeed-protocol-autoloads elfeed-autoloads
elisp-demos-autoloads elisp-dev-mcp-autoloads elogcat-autoloads
emacs-everywhere-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads ement-autoloads emms-autoloads emojify-autoloads
exec-path-from-shell-autoloads feishu-project-autoloads
file-url-extractor-autoloads flycheck-gradle-autoloads
flycheck-kotlin-autoloads flycheck-plantuml-autoloads
flymake-ansible-lint-autoloads flymake-gradle-autoloads gcmh-autoloads
ghostel-autoloads git-link-autoloads git-timemachine-autoloads
go-mode-autoloads goggles-autoloads gptel-forge-prs-autoloads
forge-autoloads closql-autoloads gptel-magit-autoloads
gptel-model-updater-autoloads gptel-prompts-autoloads gptel-autoloads
graphql-mode-autoloads grip-mode-autoloads groovy-mode-autoloads
gt-autoloads helpful-autoloads elisp-refs-autoloads hugoista-autoloads
igist-autoloads ghub-autoloads imessage-autoloads
kaolin-themes-autoloads autothemer-autoloads kdl-mode-autoloads
kitty-graphics-autoloads kotlin-mode-autoloads kotlin-ts-test-autoloads
kotlin-ts-mode-autoloads leetcode-org-roam-autoloads leetcode-autoloads
aio-autoloads ligature-autoloads log4e-autoloads logview-autoloads
datetime-autoloads extmap-autoloads loop-autoloads lsp-proxy-autoloads
magit-difftastic-autoloads difftastic-autoloads magit-todos-autoloads
hl-todo-autoloads makefile-executor-autoloads marginalia-autoloads
markdown-xwidget-autoloads math-delimiters-autoloads mcp-autoloads
md-babel-autoloads markdown-mode-autoloads meow-cjk-autoloads
emt-autoloads meow-tree-sitter-autoloads meow-autoloads
mermaid-mode-autoloads minimap-autoloads mistty-autoloads
mode-transient-autoloads mu4e-column-faces-autoloads
mu4e-overview-autoloads mustache-autoloads
nerd-icons-completion-autoloads nerd-icons-corfu-autoloads
nerd-icons-dired-autoloads netease-cloud-music-autoloads
no-littering-autoloads nov-autoloads esxml-autoloads
ns-auto-titlebar-autoloads ob-aider-autoloads ob-applescript-autoloads
ob-async-autoloads ob-go-autoloads ob-kotlin-autoloads
ob-mermaid-autoloads ob-powershell-autoloads ob-rust-autoloads
ob-swiftui-autoloads ob-typescript-autoloads olivetti-autoloads
org-agenda-count-autoloads org-anki-autoloads org-appear-autoloads
org-cliplink-autoloads org-cv-autoloads org-dial-autoloads
org-drill-autoloads org-edna-autoloads org-imgtog-autoloads
org-link-beautify-autoloads fb2-reader-autoloads async-autoloads
org-mcp-autoloads mcp-server-lib-autoloads org-media-note-autoloads
mpv-autoloads org-mode-autoloads org-modern-autoloads
org-modern-indent-autoloads org-pdftools-autoloads org-noter-autoloads
org-remoteimg-autoloads org-roam-bibtex-autoloads
bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads
org-roam-ui-autoloads org-roam-autoloads emacsql-autoloads
org-yt-autoloads osm-autoloads osx-dictionary-autoloads
osx-location-autoloads osx-plist-autoloads ox-gfm-autoloads
ox-hugo-autoloads package-vc-skip-unchanged-autoloads
pangu-spacing-autoloads parsebib-autoloads pass-autoloads
password-store-menu-autoloads password-store-otp-autoloads
password-store-autoloads pcre2el-autoloads pdd-autoloads
pdf-text-autoloads pdf-tools-autoloads pet-autoloads
pinyin-isearch-autoloads pinyin-search-autoloads pinyinlib-autoloads
plantuml-mode-autoloads deflate-autoloads plz-autoloads
poly-ansible-jinja2-autoloads ansible-doc-autoloads ansible-autoloads
poly-any-go-template-autoloads go-template-ts-mode-autoloads
poly-any-jinja2-autoloads jinja2-ts-mode-autoloads
poly-any-template-indent-bars-autoloads poly-any-template-autoloads
indent-bars-autoloads poly-treesit-fold-autoloads polymode-autoloads
powershell-autoloads promise-autoloads prosody-autoloads
protobuf-mode-autoloads pulsar-autoloads qrencode-autoloads
queue-autoloads rainbow-csv-autoloads csv-mode-autoloads
rainbow-mode-autoloads request-autoloads rg-autoloads rime-autoloads
rust-mode-autoloads shell-maker-autoloads shrink-path-autoloads
sideline-eglot-autoloads sideline-flycheck-autoloads flycheck-autoloads
sideline-flymake-autoloads sideline-autoloads simple-httpd-autoloads
smartparens-autoloads solaire-mode-autoloads sow-autoloads
string-inflection-autoloads svg-lib-autoloads swift-mode-autoloads
swift-ts-mode-autoloads system-packages-autoloads tablist-autoloads
taxy-magit-section-autoloads taxy-autoloads telega-autoloads
templ-ts-mode-autoloads templatel-autoloads toc-mode-autoloads
tomelr-autoloads transpose-frame-autoloads treemacs-activities-autoloads
activities-autoloads persist-autoloads treemacs-magit-autoloads
magit-autoloads transient-autoloads magit-section-autoloads
treemacs-nerd-icons-autoloads nerd-icons-autoloads
treemacs-tab-bar-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads treepy-autoloads
treesit-fold-autoloads treesit-langs-autoloads ultra-scroll-autoloads
undo-fu-session-autoloads use-package-ignore-builtin-autoloads
uuidgen-autoloads uv-mode-autoloads pythonic-autoloads f-autoloads
s-autoloads valign-autoloads vbs-repl-autoloads vbscript-mode-autoloads
vertico-prescient-autoloads vertico-autoloads prescient-autoloads
video-trimmer-autoloads visual-basic-mode-autoloads
visual-fill-column-autoloads vlf-autoloads vundo-autoloads
websocket-autoloads wgrep-autoloads winum-autoloads dash-autoloads
with-editor-autoloads llama-autoloads cond-let-autoloads
yaml-mode-autoloads yaml-pro-autoloads yaml-autoloads
yasnippet-autoloads youdao-dictionary-autoloads names-autoloads advice
chinese-word-at-point-autoloads pos-tip-autoloads popup-autoloads
package-activate cat-early-init rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads xwidget-internal kqueue cocoa
ns lcms2 multi-tty make-network-process tty-child-frames native-compile
emacs)
Memory information:
((conses 16 2178171 2495076) (symbols 48 85549 41) (strings 32 555996 177371)
(string-bytes 1 16065014) (vectors 16 161768) (vector-slots 8 2902089 458446)
(floats 8 20835 11604) (intervals 56 19306 3606) (buffers 1064 61))
Misaka <chuxubank@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#81905; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.