From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: 26.1; flymake: removes temporary file before finishing check Resent-From: Enrico Scholz Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 26 Jun 2018 17:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 31981@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.153003404825074 (code B ref -1); Tue, 26 Jun 2018 17:28:01 +0000 Received: (at submit) by debbugs.gnu.org; 26 Jun 2018 17:27:28 +0000 Received: from localhost ([127.0.0.1]:36478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXrkW-0006WM-9J for submit@debbugs.gnu.org; Tue, 26 Jun 2018 13:27:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41131) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXrkR-0006W6-NG for submit@debbugs.gnu.org; Tue, 26 Jun 2018 13:27:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXrkL-0003VM-Ay for submit@debbugs.gnu.org; Tue, 26 Jun 2018 13:27:18 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33066) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXrkL-0003V4-6h for submit@debbugs.gnu.org; Tue, 26 Jun 2018 13:27:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60331) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXrkJ-0007Tw-Qv for bug-gnu-emacs@gnu.org; Tue, 26 Jun 2018 13:27:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXrkG-0003Pw-NP for bug-gnu-emacs@gnu.org; Tue, 26 Jun 2018 13:27:15 -0400 Received: from mail.cvg.de ([193.158.56.148]:44428) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXrkG-0002zz-8M for bug-gnu-emacs@gnu.org; Tue, 26 Jun 2018 13:27:12 -0400 Received: from mail-mta-0.intern.sigma-chemnitz.de (mail-mta-0.intern.sigma-chemnitz.de [192.168.12.76]) by mailout-1.intern.sigma-chemnitz.de (8.14.7/8.14.7) with ESMTP id w5QHQUYa018727 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 26 Jun 2018 19:26:30 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sigma-chemnitz.de; s=v2012061000; t=1530033990; bh=hOTvfgysqHhk7kQHVm5ygwTP5FHMxLtpFxyaSit08cU=; l=2924; h=From:To:Subject:Date; b=NvlvWGeoKh0PeMWJznL2usGjevNaixuiHKCGIY0pBwWW0MeO+xOWFfGd5BWUUxqlb O8cusV/kBcgi4hgWl2JzGXYtSeCYcMXzxtPM2Lfyusfu7q0fFMDkSjUgvIz/Up9Z8N SPkXaBf08UoOKB8IGDiDjs7hXCF5zteBV14u2Ts4= Received: from reddoxx.intern.sigma-chemnitz.de (reddoxx.intern.sigma-chemnitz.de [192.168.0.193]) by mail-mta-0.intern.sigma-chemnitz.de (8.14.7/8.14.7) with ESMTP id w5QHQLqc018256 for from enrico.scholz@sigma-chemnitz.de; Tue, 26 Jun 2018 19:26:22 +0200 Received: from mail-msa-0.intern.sigma-chemnitz.de ( [192.168.12.77]) by reddoxx.intern.sigma-chemnitz.de (Reddoxx engine) with SMTP id 699FC65D76; Tue, 26 Jun 2018 19:33:45 +0200 Received: from ensc-virt.intern.sigma-chemnitz.de (ensc-virt.intern.sigma-chemnitz.de [192.168.3.24]) by mail-msa-0.intern.sigma-chemnitz.de (8.14.7/8.14.7) with ESMTP id w5QHQFZB018251 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for from ensc@sigma-chemnitz.de; Tue, 26 Jun 2018 19:26:18 +0200 Received: from ensc by ensc-virt.intern.sigma-chemnitz.de with local (Exim 4.91) (envelope-from ) id 1fXrjJ-00Blda-9i for bug-gnu-emacs@gnu.org; Tue, 26 Jun 2018 19:26:13 +0200 From: Enrico Scholz Date: Tue, 26 Jun 2018 19:26:13 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.1 (-----) flymake gets confused and terminates itself when checking needs a long time. It can be reproduced with a makefile like --- Makefile --- check-syntax: sleep 2 ${MAKE} ${CHK_SOURCES} ---------------- 1. start 'emacs -Q' 2. open 'foo.c' in the directory with the makefile above 3. M-x flymake-mode 4. start typing --> "Wait" appears in status line 5. continue typing --> "!" appears in status line and log reports | Warning [flymake-proc foo.c]: deleted file /tmp/YYY/foo_flymake.c | Warning [flymake-proc *flymake output for foo.c*-919402]: Reference to file e: *** [Makefile is out of scope | Warning [flymake-proc *flymake output for foo.c*-131024]: Reference to file e: *** [Makefile is out of scope | Warning [flymake-proc foo.c]: process 2803326 exited with code 2 | Error [flymake-proc foo.c]: :configuration-error: Command (make -s -C ./ CHK_SOURCES=foo_flymake.c SYNTAX_CHECK_MODE=1 check-syntax) errored, but no diagnostics | Warning [flymake foo.c]: Disabling backend flymake-proc-legacy-flymake because :configuration-error: Command (make -s -C ./ CHK_SOURCES=foo_flymake.c SYNTAX_CHECK_MODE=1 check-syntax) errored, but no diagnostics -------------- GNU Emacs 26.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 2.24.32) of 2018-05-31 built on koji-builder4.intern.sigma-chemnitz.de Windowing system distributor 'Fedora Project', version 11.0.11906000 System Description: Fedora release 28 (Twenty Eight) ... Configured using: 'configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk --with-gpm=no --with-modules build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' LDFLAGS=-Wl,-z,relro PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK2 X11 MODULES THREADS LCMS2 Important settings: value of $LC_COLLATE: C value of $LANG: de_DE.UTF-8 locale-coding-system: utf-8-unix From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug References: In-Reply-To: Resent-From: Joel Rosdahl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Aug 2019 20:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.156693812831338 (code B ref 31981); Tue, 27 Aug 2019 20:36:02 +0000 Received: (at 31981) by debbugs.gnu.org; 27 Aug 2019 20:35:28 +0000 Received: from localhost ([127.0.0.1]:49464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2iBc-00089N-1J for submit@debbugs.gnu.org; Tue, 27 Aug 2019 16:35:28 -0400 Received: from mupp.mupps.se ([213.50.164.166]:57592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2iBZ-000899-8N for 31981@debbugs.gnu.org; Tue, 27 Aug 2019 16:35:26 -0400 Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) by mupp.mupps.se (Postfix) with ESMTPSA id C4C6ABDC05 for <31981@debbugs.gnu.org>; Tue, 27 Aug 2019 22:35:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rosdahl.net; s=mupp-20190208; t=1566938120; bh=a1FyAfRPOfQH/fsgpRCKhc4DEGdsR9u7CuI3ATN4LR4=; h=From:Date:Subject:To:From; b=edq0JqD87im5Drsji9kzUIOsuAb/vU617HAbnKxZFjb4YDfrlgBScY0AlbnUjuYSK rW4HQ0orvsFWlNmgHTE/Vb8XS/FhlMFuGzY/4T/ErYYs0QDuFq22sZSF8/FsA0+nRC tjX8kKx//6DiY5wl7F88L9r946Hz6wCTCzvcTfWywGplclNaQq5hRey/g9FQVByeg0 WofVi9C0HkQD++GB9pyM5Quf8Nfv8Ky19q/dQQrcf0rs16SCvZ3lmeT01SDe0iYtBI 3dDy6oA/7Cyh2IkVKZKa66VU8LkEU7toISN9L/tmxTuGW1ecw/br6MS+OLK9F8Bzzk D1XGAb7+HjSpw== Received: by mail-lj1-f178.google.com with SMTP id x18so530018ljh.1 for <31981@debbugs.gnu.org>; Tue, 27 Aug 2019 13:35:20 -0700 (PDT) X-Gm-Message-State: APjAAAUsDCemgtfn6nhSqS+mJyOZWp7XJkOQH8sCCCMErZQUFDMc/e6K hRVq9lgu9RXtEEgJp1hX8UB8ihsW3uK2GQasl+M= X-Google-Smtp-Source: APXvYqzDYkN3xdhubdC6otrcHRmywqqeVkpHVWOf1oQVDgmqQGlnJVbNjNsNIlEDQPneu7jbTWNHD/DOFVW3QKgqvGk= X-Received: by 2002:a2e:b042:: with SMTP id d2mr92927ljl.202.1566938120570; Tue, 27 Aug 2019 13:35:20 -0700 (PDT) MIME-Version: 1.0 From: Joel Rosdahl Date: Tue, 27 Aug 2019 22:35:04 +0200 X-Gmail-Original-Message-ID: Message-ID: Content-Type: multipart/mixed; boundary="0000000000001004ee05911f36b2" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000001004ee05911f36b2 Content-Type: text/plain; charset="UTF-8" I can reproduce this bug on latest master. The problem is that if a check command takes a long time, the following can happen: 1. The user modifies the buffer, making flymake-proc start a process A which reads from a temporary file T containing the buffer content. 2. Before process A has finished, the user modifies the buffer again, making flymake-proc start a new process B reading from the same temporary file T. 3. A is marked as obsolete. 4. When A's sentinel detects that A has died, it runs A's cleanup function which deletes T. 5. B may fail since T is gone. Attached is a patch which solves the issue, at least for me: simply don't run the cleanup function for an obsolete process. This should work well for checks that use flymake-proc-simple-cleanup or one of the other cleanup functions defined in flymake-proc.el. I'm not sure if the fix is appropriate for the general case with a user-supplied custom cleanup function, though. But I see no other quick fix for the issue since the name of the temporary file is kept in a single buffer-local variable and there is no way for the cleanup function to know that it's being called for an obsolete process. -- Joel --0000000000001004ee05911f36b2 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-flymake-proc-temporary-file-deletion-bug.patch" Content-Disposition: attachment; filename="0001-Fix-flymake-proc-temporary-file-deletion-bug.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jzuagqef0 RnJvbSBmZWYwZmU1ZWQ2Y2VjNzhlODdmMjk0NDRhZjhkNDAwYmNiZDAxZTcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIFJvc2RhaGwgPGpvZWxAcm9zZGFobC5uZXQ+CkRhdGU6 IFR1ZSwgMjcgQXVnIDIwMTkgMjI6MDA6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggZmx5 bWFrZS1wcm9jIHRlbXBvcmFyeSBmaWxlIGRlbGV0aW9uIGJ1ZwoKKiBsaXN0L3Byb2dtb2Rlcy9m bHltYWtlLXByb2MuZWwgKGZseW1ha2UtcHJvYy0tcHJvY2Vzcy1zZW50aW5lbCk6CkRvbid0IHJ1 biBjbGVhbnVwIGlmIHRoaXMgaXMgYW4gb2Jzb2xldGUgcHJvY2VzcyAtLSBkZWxldGluZyB0aGUK dGVtcG9yYXJ5IGZpbGUgd2lsbCBtYWtlIHRoZSB0aGUgYWN0aXZlIHByb2Nlc3MgZmFpbCBzaW5j ZSBpdCB1c2VzIHRoZQpzYW1lIGZpbGUuIChCdWcjMzE5ODEpCi0tLQogbGlzcC9wcm9nbW9kZXMv Zmx5bWFrZS1wcm9jLmVsIHwgNyArKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS1w cm9jLmVsIGIvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS1wcm9jLmVsCmluZGV4IDJkNWE0N2EwNzk3 OC4uMjA5NWRlNjExN2U1IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9mbHltYWtlLXByb2Mu ZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS1wcm9jLmVsCkBAIC02NDksNyArNjQ5LDEy IEBAIGZseW1ha2UtcHJvYy0tcHJvY2Vzcy1zZW50aW5lbAogICAgICAgICAgICAgICAgKGZseW1h a2UtbG9nIDMgIk91dHB1dCBidWZmZXIgJXMga2VwdCBhbGl2ZSBmb3IgZGVidWdnaW5nIgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC1idWZmZXIpKQogICAgICAgICAgICAgICAo dAotICAgICAgICAgICAgICAgKHdoZW4gKGJ1ZmZlci1saXZlLXAgc291cmNlLWJ1ZmZlcikKKyAg ICAgICAgICAgICAgICh3aGVuIChhbmQgKGJ1ZmZlci1saXZlLXAgc291cmNlLWJ1ZmZlcikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgRG9uJ3QgcnVuIGNsZWFudXAgaWYgdGhpcyBpcyBh biBvYnNvbGV0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBwcm9jZXNzIC0tIGRlbGV0 aW5nIHRoZSB0ZW1wb3JhcnkgZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB3aWxs IG1ha2UgdGhlIHRoZSBhY3RpdmUgcHJvY2VzcyBmYWlsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIDs7IHNpbmNlIGl0IHVzZXMgdGhlIHNhbWUgZmlsZSAoYnVnIzMxOTgxKToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKG5vdCAocHJvY2Vzcy1nZXQgcHJvYyAnZmx5bWFrZS1wcm9jLS1v YnNvbGV0ZSkpKQogICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzb3VyY2Ut YnVmZmVyCiAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNsZWFudXAtZiAoZmx5bWFrZS1wcm9j LS1nZXQtY2xlYW51cC1mdW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChidWZmZXItZmlsZS1uYW1lKSkpKQotLSAKMi4yMC4xCgo= --0000000000001004ee05911f36b2-- From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Aug 2019 23:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joel Rosdahl Cc: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.156694908719308 (code B ref 31981); Tue, 27 Aug 2019 23:39:01 +0000 Received: (at 31981) by debbugs.gnu.org; 27 Aug 2019 23:38:07 +0000 Received: from localhost ([127.0.0.1]:49601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2l2N-00051M-22 for submit@debbugs.gnu.org; Tue, 27 Aug 2019 19:38:07 -0400 Received: from mail-io1-f46.google.com ([209.85.166.46]:46457) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2l2K-00050n-CV for 31981@debbugs.gnu.org; Tue, 27 Aug 2019 19:38:05 -0400 Received: by mail-io1-f46.google.com with SMTP id x4so1989327iog.13 for <31981@debbugs.gnu.org>; Tue, 27 Aug 2019 16:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=GuNVWpVSP0j3i7CSfK4I8ktPujIPuadI3c3Fe7yPQF8=; b=gWoIybP6RTjY2CaQa2LnV4y93LDeO/db986BiqzURUKpsmYhf0ji2g8AUn4OiTOeOM p8xegCd+fnw05FEbUweNLIOjQyOMPXkT51LZCGBZFfV9Uza97DZrFm34noiQ2qUZuKew Tb/L6MLkiaax9buyrMGSqYMu1al64cq6hLdCwMYxP+XdIAG21i703UPXhGeK4gxqKnZB 6q1wsQ1ByVFS2olc0fyT1X2DRFc2ga1iwaqjLP6KGuANAJ9Sgao/a6Q2LnScuOCPj5Hw Zu+62CwHP5ShJLkIGRveYxm2SyRYnpSAgo1oTmYpBu71f9ZklCxIn2mN8Xe6asPSkIzx AtdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=GuNVWpVSP0j3i7CSfK4I8ktPujIPuadI3c3Fe7yPQF8=; b=uE/opkkEtt++/hOcjYneefTfyf0hfxhYzhTplcGPfkIXCuBrbUVYclvnzdI59lwz3M TPm2ghw58lGEy4hGLbw+IdRoOu4iyNDon6TF8iKSkiAkMC2Gc5nhEpnKX2WHnfBjjMby ZgZGjbfod+xvIYVHis1HWPOFY0Rk8U7X1/dLtESfeRwYoUdgyAsFGouVw/xTtjLXU9oH qiiX+Roh35WWaA4U2hf6GI5JSpO7uJTK6iYTBABxcgqGYKvOYrccoQkvD4GMYIhMgzdA RPUr4BzXinQP/hcUI+M4vQF+gH3+2zHt/Jx6/OQP/C6mi7espHz1yBw7n+eLjneEH3zK 3Htw== X-Gm-Message-State: APjAAAX+FQklgJM4xYKsHniwkx424IG8voODn12Dd1oS5miBqER78zFT Not9+0tZnTSopUL0F/FR3uSzUgdX X-Google-Smtp-Source: APXvYqxG8U7CK3tONh9QnO3knJdKFGPdxATzKIf5bP55BTWHRsVvo7S4ZoTrJv/ck3q3IQP92uWsTA== X-Received: by 2002:a02:1441:: with SMTP id 62mr1596355jag.21.1566949078483; Tue, 27 Aug 2019 16:37:58 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id n203sm549630iod.28.2019.08.27.16.37.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 27 Aug 2019 16:37:57 -0700 (PDT) From: Noam Postavsky References: Date: Tue, 27 Aug 2019 19:37:56 -0400 In-Reply-To: (Joel Rosdahl's message of "Tue, 27 Aug 2019 22:35:04 +0200") Message-ID: <87lfvemb6z.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Joel Rosdahl writes: > 1. The user modifies the buffer, making flymake-proc start a process A > which reads from a temporary file T containing the buffer content. > 2. Before process A has finished, the user modifies the buffer again, > making flymake-proc start a new process B reading from the same > temporary file T. If I'm reading flymake-proc-init-create-temp-buffer-copy correctly, it actually makes a new temporary file (say T1), but the file name is stored in a single variable, so Emacs effectively forgets about the original file T. > 3. A is marked as obsolete. > 4. When A's sentinel detects that A has died, it runs A's cleanup > function which deletes T. So here it deletes T1, leaving the original T. And then B will fail, since it needs T1, not T. > But I see no other quick fix for the issue since the name of the > temporary file is kept in a single buffer-local variable and there is > no way for the cleanup function to know that it's being called for an > obsolete process. Would it work to store the filename in the process object instead, with process-put (and then the sentinel can retreive it with process-get)? From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug Resent-From: Joel Rosdahl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 28 Aug 2019 19:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Noam Postavsky Cc: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.156701993622394 (code B ref 31981); Wed, 28 Aug 2019 19:19:02 +0000 Received: (at 31981) by debbugs.gnu.org; 28 Aug 2019 19:18:56 +0000 Received: from localhost ([127.0.0.1]:51237 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i33T5-0005p7-Vs for submit@debbugs.gnu.org; Wed, 28 Aug 2019 15:18:56 -0400 Received: from mupp.mupps.se ([213.50.164.166]:58688) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i33T3-0005ou-Sx for 31981@debbugs.gnu.org; Wed, 28 Aug 2019 15:18:54 -0400 Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by mupp.mupps.se (Postfix) with ESMTPSA id 6CD8DBE1E1 for <31981@debbugs.gnu.org>; Wed, 28 Aug 2019 21:18:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rosdahl.net; s=mupp-20190208; t=1567019930; bh=nV0p9MyXfuoz7gKZbu6116g1UYK3zEt3xN9BtVpDRFk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=NroWBKeuMlUMZ/yK8h6To+9I2dBClhCuX/kEQx2NGxhqXgIjJAqc/830k//jUNnU1 za13fQmioqmHaGqp/506GHGZK/SR2w7MipL6FiHvSjFNuOXh8xp1LcQ4PcuegiwYWo QAoRGmER1YPKpgkDnIezuWxr+i/2vrg1GvShv5SgseTdzoZL4rsvPr6rLYoYBO8Mb9 Kg4JtLGMP9LMI1ueUiqy3IY5xTLkLnyO3NlfHNkt/n0NFpD6y6efUGbK04vCJiGkUM A17Obc9clGBjgy6GybGoU/GrVZOtGBOZ3fvrY+eMoHg6VUbRV0Q2FV5h/8p13RGhW0 gc039c5rtFe0g== Received: by mail-lf1-f41.google.com with SMTP id l11so478441lfk.6 for <31981@debbugs.gnu.org>; Wed, 28 Aug 2019 12:18:50 -0700 (PDT) X-Gm-Message-State: APjAAAVqzZ2C4HbkiVlR20O8ctLXJWt4pleVRgJ1on+YMn8UsKSVqbrj v2e44ZfNSZg120O77CHNEt2zdl4UNS9CX8iKjkU= X-Google-Smtp-Source: APXvYqxRp05ZEtIwJKQC4x9vvQjU9+lQ0ao6tWnOePnsXSwbK2Cu46+1lQFM82o8OhrTrI3jXJQIWC/CCy7UOK0VFiE= X-Received: by 2002:a19:bed4:: with SMTP id o203mr3466929lff.110.1567019930008; Wed, 28 Aug 2019 12:18:50 -0700 (PDT) MIME-Version: 1.0 References: <87lfvemb6z.fsf@gmail.com> In-Reply-To: <87lfvemb6z.fsf@gmail.com> From: Joel Rosdahl Date: Wed, 28 Aug 2019 21:18:33 +0200 X-Gmail-Original-Message-ID: Message-ID: Content-Type: multipart/mixed; boundary="000000000000495bba0591324243" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000495bba0591324243 Content-Type: text/plain; charset="UTF-8" On Wed, 28 Aug 2019 at 01:38, Noam Postavsky wrote: > If I'm reading flymake-proc-init-create-temp-buffer-copy correctly, it > actually makes a new temporary file (say T1), but the file name is stored in > a single variable, so Emacs effectively forgets about the original file T. The create-temp-f parameter to flymake-proc-init-create-temp-buffer-copy is in practice flymake-proc-create-temp-inplace, which always creates the same result for a given file-name and prefix. And file-name and prefix are the same for both modification A and B (since it's the same file). Or am I missing something? > So here it deletes T1, leaving the original T. And then B will fail, since it > needs T1, not T. Nope, it's T both times, but it's true that only generating a unique filename wouldn't fix the issue since, as you said, the filename is stored in a single variable. > Would it work to store the filename in the process object instead, with > process-put (and then the sentinel can retreive it with process-get)? Yes, flymake-proc-create-temp-inplace could create a unique filename and store it in the process, but that wouldn't help since the cleanup function doesn't have access to the process (since the process is stored in a single variable as well). Passing the process or filename(s) to the cleanup function would work, but it would break the interface to existing custom cleanup functions which don't take a parameter, so I wrote off that solution earlier. ...unless we can pass the value(s) using dynamic binding to the cleanup function. I didn't consider this before since lexical binding would prevent such a solution, but I just learnt to my surprise that global defvar-ed variables are still dynamically scoped. Attached is a new proposed solution as sketched above. -- Joel --000000000000495bba0591324243 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-flymake-proc-temporary-file-deletion-bug.patch" Content-Disposition: attachment; filename="0001-Fix-flymake-proc-temporary-file-deletion-bug.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jzvn6odf0 RnJvbSA4MWY4ODUzODEzNDNmNGYwOGQwYWVmMWZkMDU4OWU3NmY4NDFiZGI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIFJvc2RhaGwgPGpvZWxAcm9zZGFobC5uZXQ+CkRhdGU6 IFdlZCwgMjggQXVnIDIwMTkgMjE6MDA6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggZmx5 bWFrZS1wcm9jIHRlbXBvcmFyeSBmaWxlIGRlbGV0aW9uIGJ1ZwoKKiBsaXN0L3Byb2dtb2Rlcy9m bHltYWtlLXByb2MuZWwgKGZseW1ha2UtcHJvYy1jcmVhdGUtdGVtcC1pbnBsYWNlKToKSW5jbHVk ZSBhIHRpbWUgc3RyaW5nIHBhcnQgKGhvdXIgKyBtaW51dGUgKyBzZWNvbmQgKyBuYW5vc2Vjb25k KSBpbiB0aGUKdGVtcG9yYXJ5IG5hbWUgdG8gbWFrZSBpdCB1bmlxdWUgZW5vdWdoLgoKKiBsaXN0 L3Byb2dtb2Rlcy9mbHltYWtlLXByb2MuZWwgKGZseW1ha2UtcHJvYy1sZWdhY3ktZmx5bWFrZSk6 IFN0b3JlCnRlbXBvcmFyeSBmaWxlIG5hbWVzIGluIHRoZSBwcm9jZXNzIGZvciB1c2FnZSBpbiB0 aGUgc2VudGluZWwuCgoqIGxpc3QvcHJvZ21vZGVzL2ZseW1ha2UtcHJvYy5lbCAoZmx5bWFrZS1w cm9jLS1wcm9jZXNzLXNlbnRpbmVsKTogQmluZAp2YWx1ZXMgb2YgdGVtcG9yYXJ5IGZpbGUgbmFt ZXMgZHluYW1pY2FsbHkgdG8gdmFsdWVzIHN0b3JlZCBpbiB0aGUKcHJvY2VzcyBzbyB0aGF0IHRo ZSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBjb3JyZWN0IHRlbXBvcmFyeQpmaWxl KHMpLgoKRml4ZXMgYnVnIzMxOTgxLgotLS0KIGxpc3AvcHJvZ21vZGVzL2ZseW1ha2UtcHJvYy5l bCB8IDE0ICsrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UtcHJvYy5l bCBiL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UtcHJvYy5lbAppbmRleCAyZDVhNDdhMDc5NzguLmYw OGJhMmYzNjgxNyAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS1wcm9jLmVsCisr KyBiL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UtcHJvYy5lbApAQCAtNjU0LDcgKzY1NCwxNCBAQCBm bHltYWtlLXByb2MtLXByb2Nlc3Mtc2VudGluZWwKICAgICAgICAgICAgICAgICAgICAobGV0ICgo Y2xlYW51cC1mIChmbHltYWtlLXByb2MtLWdldC1jbGVhbnVwLWZ1bmN0aW9uCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1maWxlLW5hbWUpKSkpCiAgICAgICAg ICAgICAgICAgICAgICAoZmx5bWFrZS1sb2cgMyAiY2xlYW5pbmcgdXAgdXNpbmcgJXMiIGNsZWFu dXAtZikKLSAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGNsZWFudXAtZikpKSkKKyAgICAg ICAgICAgICAgICAgICAgIDs7IE1ha2UgY2xlYW51cC1mIHNlZSB0aGUgdGVtcG9yYXJ5IGZpbGUg bmFtZXMKKyAgICAgICAgICAgICAgICAgICAgIDs7IGNyZWF0ZWQgYnkgaXRzIGNvcnJlc3BvbmRp bmcgaW5pdCBmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgOzsgKGJ1ZyMzMTk4MSkuCisg ICAgICAgICAgICAgICAgICAgICAobGV0ICgoZmx5bWFrZS1wcm9jLS10ZW1wLXNvdXJjZS1maWxl LW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvY2Vzcy1nZXQgcHJvYyAnZmx5 bWFrZS1wcm9jLS10ZW1wLXNvdXJjZS1maWxlLW5hbWUpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGZseW1ha2UtcHJvYy0tdGVtcC1tYXN0ZXItZmlsZS1uYW1lCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHByb2Nlc3MtZ2V0IHByb2MgJ2ZseW1ha2UtcHJvYy0tdGVtcC1tYXN0 ZXItZmlsZS1uYW1lKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGNsZWFudXAt ZikpKSkpCiAgICAgICAgICAgICAgICAoa2lsbC1idWZmZXIgb3V0cHV0LWJ1ZmZlcikpKSkpKSkK IAogKGRlZnVuIGZseW1ha2UtcHJvYy0tcGFuaWMgKHByb2JsZW0gZXhwbGFuYXRpb24pCkBAIC04 MjQsNiArODMxLDEwIEBAIGZseW1ha2UtcHJvYy1sZWdhY3ktZmx5bWFrZQogICAgICAgICAgICAg ICAgICAgKHByb2Nlc3MtcHV0IHByb2MgJ2ZseW1ha2UtcHJvYy0tb3V0cHV0LWJ1ZmZlcgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVmZmVyCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiAqZmx5bWFrZSBvdXRwdXQgZm9yICVz KiIgKGN1cnJlbnQtYnVmZmVyKSkpKQorICAgICAgICAgICAgICAgICAgKHByb2Nlc3MtcHV0IHBy b2MgJ2ZseW1ha2UtcHJvYy0tdGVtcC1zb3VyY2UtZmlsZS1uYW1lCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmx5bWFrZS1wcm9jLS10ZW1wLXNvdXJjZS1maWxlLW5hbWUpCisgICAg ICAgICAgICAgICAgICAocHJvY2Vzcy1wdXQgcHJvYyAnZmx5bWFrZS1wcm9jLS10ZW1wLW1hc3Rl ci1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHltYWtlLXByb2Mt LXRlbXAtbWFzdGVyLWZpbGUtbmFtZSkKICAgICAgICAgICAgICAgICAgIChzZXRxIGZseW1ha2Ut cHJvYy0tY3VycmVudC1wcm9jZXNzIHByb2MpCiAgICAgICAgICAgICAgICAgICAoZmx5bWFrZS1s b2cgMiAic3RhcnRlZCBwcm9jZXNzICVkLCBjb21tYW5kPSVzLCBkaXI9JXMiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHByb2Nlc3MtaWQgcHJvYykgKHByb2Nlc3MtY29tbWFuZCBw cm9jKQpAQCAtODY1LDYgKzg3Niw3IEBAIGZseW1ha2UtcHJvYy1jcmVhdGUtdGVtcC1pbnBsYWNl CiAgIChsZXQqICgoZXh0IChmaWxlLW5hbWUtZXh0ZW5zaW9uIGZpbGUtbmFtZSkpCiAJICh0ZW1w LW5hbWUgKGZpbGUtdHJ1ZW5hbWUKIAkJICAgICAoY29uY2F0IChmaWxlLW5hbWUtc2Fucy1leHRl bnNpb24gZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXyIgKGZvcm1h dC10aW1lLXN0cmluZyAiJUglTSVTJU4iKQogCQkJICAgICAiXyIgcHJlZml4CiAJCQkgICAgIChh bmQgZXh0IChjb25jYXQgIi4iIGV4dCkpKSkpKQogICAgIChmbHltYWtlLWxvZyAzICJjcmVhdGUt dGVtcC1pbnBsYWNlOiBmaWxlPSVzIHRlbXA9JXMiIGZpbGUtbmFtZSB0ZW1wLW5hbWUpCi0tIAoy LjIwLjEKCg== --000000000000495bba0591324243-- From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 Aug 2019 16:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joel Rosdahl Cc: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.156709471510564 (code B ref 31981); Thu, 29 Aug 2019 16:06:01 +0000 Received: (at 31981) by debbugs.gnu.org; 29 Aug 2019 16:05:15 +0000 Received: from localhost ([127.0.0.1]:52839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3MvC-0002kJ-9e for submit@debbugs.gnu.org; Thu, 29 Aug 2019 12:05:14 -0400 Received: from mail-io1-f49.google.com ([209.85.166.49]:43561) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3MvA-0002ju-L6 for 31981@debbugs.gnu.org; Thu, 29 Aug 2019 12:05:13 -0400 Received: by mail-io1-f49.google.com with SMTP id u185so4156370iod.10 for <31981@debbugs.gnu.org>; Thu, 29 Aug 2019 09:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version; bh=XUPlpylcHQY0z9Ygwag+12aSKaFg/gLU4RnQ6YpiL+M=; b=HT/SyIfN9Xg7W6yoG/5tytVd2tf7YLvV5Nt3E6NgkpjdaUvzxsIRpCpzXVix1Agx+z GcUOODpw/PqawG6idi5SRN4kxhSx9N2uGvkq3aDTst2cnOkeJHqMQMS0z5bFOMK1cQ4O BCsVT5UJJTY4JCnxF3Sua44ldqYEHD7LBXT1Q8+etGP8apCgUBXtnm6bC2HJ+qh6HO3B Ggp+NmUEa5cfX14W7Ol8OOCW49LZxogHAM62TBsKSdvbfUrQHPksEFHqjq/hR0XEguee wQF669Y5ng4y8CXwF8j39bR2YLbl1QVqXOAPSCQXo+EmiQrk8H/XU1FVzFgaBFvE8joh 7Zmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references :user-agent:date:message-id:mime-version; bh=XUPlpylcHQY0z9Ygwag+12aSKaFg/gLU4RnQ6YpiL+M=; b=UuDXBpXX1PP1q1FkkKVsrtun9j1L4pMqrSYp/Q3feVygc+zEiyqbWirkDb4nkBn+ZE FJjEosk5E2Hf1pGaCDJRA42wR1Rxg1KwaZjrUUlQ3RFWHDjX24+0KB5FZJBR+DcnLhrZ FHgW8yRGkBcX/RVKHkFvmP8RFMESQr3fb7VynvOqBDhTU3rKHxKA3kYi7ouNY3/ri/hA +usLSVjInGcSZGR1CDvP6m/4I5viU9tnRr9lhDjOJ16+vdpY5lUSQJlmTbn3eymilqAY 3+X+roAiJ9n4ShWDgutE70eBVIiyzWkzBGxqfMH0ahyqu1Gdj5NNiDj7gDiZCK7koURQ 2X/g== X-Gm-Message-State: APjAAAXrhhrGkPzXMBG+9XWHkgu+/O8Jfy0FvCaNH+HwRhtgPkIDo611 kmLkktVQsumurjxntleywWxgF4k9 X-Google-Smtp-Source: APXvYqxi84mzBYMw9zpOjkcwSqLtxuMxa1SDJPaDDAzDB/aIS2N7tXohe54XTAFbOu4u+gYJdFBS5g== X-Received: by 2002:a6b:6a07:: with SMTP id x7mr3653347iog.168.1567094706766; Thu, 29 Aug 2019 09:05:06 -0700 (PDT) Received: from vhost2 (CPE001143542e1f-CMf81d0f809fa0.cpe.net.cable.rogers.com. [99.230.38.42]) by smtp.gmail.com with ESMTPSA id l8sm2014795ioh.85.2019.08.29.09.05.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 29 Aug 2019 09:05:05 -0700 (PDT) From: Noam Postavsky In-Reply-To: (Joel Rosdahl's message of "Wed, 28 Aug 2019 21:18:33 +0200") References: <87lfvemb6z.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.92 (windows-nt) Date: Thu, 29 Aug 2019 12:04:57 -0400 Message-ID: <85v9ughs9i.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Joel Rosdahl writes: > On Wed, 28 Aug 2019 at 01:38, Noam Postavsky wrote: >> If I'm reading flymake-proc-init-create-temp-buffer-copy correctly, it >> actually makes a new temporary file (say T1), but the file name is stored in >> a single variable, so Emacs effectively forgets about the original file T. > > The create-temp-f parameter to flymake-proc-init-create-temp-buffer-copy is in > practice flymake-proc-create-temp-inplace, which always creates the same result > for a given file-name and prefix. And file-name and prefix are the same for > both modification A and B (since it's the same file). Or am I missing > something? No, it's just me who missed this. There's a lot of indirection, and I didn't read that carefully. > but I just learnt to my surprise that global defvar-ed > variables are still dynamically scoped. Well, they would be unusable otherwise, since global vars don't have any lexical scope as such. > + ;; Make cleanup-f see the temporary file names > + ;; created by its corresponding init function > + ;; (bug#31981). > + (let ((flymake-proc--temp-source-file-name > + (process-get proc 'flymake-proc--temp-source-file-name)) > + (flymake-proc--temp-master-file-name > + (process-get proc 'flymake-proc--temp-master-file-name))) > + (funcall cleanup-f))))) A little awkward, but that's proably the best we can do without changing the signature of cleanup-f (which I guess would be much more troublesome). From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug Resent-From: Joel Rosdahl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 Aug 2019 17:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Noam Postavsky Cc: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.156709985428229 (code B ref 31981); Thu, 29 Aug 2019 17:31:02 +0000 Received: (at 31981) by debbugs.gnu.org; 29 Aug 2019 17:30:54 +0000 Received: from localhost ([127.0.0.1]:52889 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3OG6-0007LF-0P for submit@debbugs.gnu.org; Thu, 29 Aug 2019 13:30:54 -0400 Received: from mupp.mupps.se ([213.50.164.166]:58338) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3OG4-0007L4-2t for 31981@debbugs.gnu.org; Thu, 29 Aug 2019 13:30:52 -0400 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by mupp.mupps.se (Postfix) with ESMTPSA id 5B780BE1EC for <31981@debbugs.gnu.org>; Thu, 29 Aug 2019 19:30:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rosdahl.net; s=mupp-20190208; t=1567099847; bh=x1FPUzySGic9kKJDv1wiyqdHGzluC5ThJ2YZfFa7bQE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=lDavV+tL0PS96Nmb2vgu0TUtW7CBvVELQqaKAXx9KpcjeJDwwNc5pOSe5qZt8ju6I QaIzlY6TtuGvPh+ICFDblzlttBu7yhCJEnRms3mPVL6Jczgeo5ud2Rkg7o9LZclVgV MqM/SOcF1i9SvdTsdWKkhIT/gj9i7oBTKN/vYTrR6dVkoqmmkVRq2e8YmsB+xn0V6q fJ84GsLqoRucgpsnSCGcayamUHUt+enJODwWBwv0aZ4I05WFRsIMsF4XIbMsEYDqez xM6SYD9Up5973E5wwjtLMrMmNLMGaeaDfuhVj+QpRD0CEMQ18Myrbl91LUi0TWrsKH cnA2ez0PVRMRA== Received: by mail-lf1-f44.google.com with SMTP id q27so3150930lfo.10 for <31981@debbugs.gnu.org>; Thu, 29 Aug 2019 10:30:47 -0700 (PDT) X-Gm-Message-State: APjAAAUrpnITDiG3jT1gsZS6XOSK6StPH0S7RBsPAItrML3/xaXaReJI W737ol8EACwJ0o6kiGe18P2BVABbN+c55IZvCnk= X-Google-Smtp-Source: APXvYqw1JovsZmV4IzKcOt3hIk0GP9dbWCSLmZ3nfYWHsX4l96c/ZYApye+dj6ocGArjHcIubx2+ve3U0CAd0vwVqkI= X-Received: by 2002:ac2:4157:: with SMTP id c23mr6833598lfi.173.1567099847072; Thu, 29 Aug 2019 10:30:47 -0700 (PDT) MIME-Version: 1.0 References: <87lfvemb6z.fsf@gmail.com> <85v9ughs9i.fsf@gmail.com> In-Reply-To: <85v9ughs9i.fsf@gmail.com> From: Joel Rosdahl Date: Thu, 29 Aug 2019 19:30:31 +0200 X-Gmail-Original-Message-ID: Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Thu, 29 Aug 2019 at 18:05, Noam Postavsky wrote: > A little awkward, but that's proably the best we can do without changing > the signature of cleanup-f (which I guess would be much more > troublesome). I agree. Alternative solutions welcome, of course. -- Joel From unknown Fri Jun 13 11:48:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#31981: Fix 'flymake-proc-legacy-flymake' temporary file deletion bug Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 07 Sep 2019 21:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joel Rosdahl Cc: 31981@debbugs.gnu.org Received: via spool by 31981-submit@debbugs.gnu.org id=B31981.15678903223892 (code B ref 31981); Sat, 07 Sep 2019 21:06:02 +0000 Received: (at 31981) by debbugs.gnu.org; 7 Sep 2019 21:05:22 +0000 Received: from localhost ([127.0.0.1]:38137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6hta-00010d-1e for submit@debbugs.gnu.org; Sat, 07 Sep 2019 17:05:22 -0400 Received: from mail-io1-f48.google.com ([209.85.166.48]:46571) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i6htX-00010H-KZ; Sat, 07 Sep 2019 17:05:20 -0400 Received: by mail-io1-f48.google.com with SMTP id x4so20484619iog.13; Sat, 07 Sep 2019 14:05:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=bY9rhR9plfKlGQXUMa3GLn8ct396NV4Vtjp2QrtbBQA=; b=Rk0J1plU6zHgDwnaRosQZe1I5agZfWQWEq8W8lEgfztMAWA/hH9cg4uS1Ie/QHbnAT Rou2Ehqzleu/bdgiXQBUA4XRLAKBYYMrliIJtx8FauXXTRGJyq7PkP6cl+SxQK+/H6Id Zy463HRMoQ9at4hSZM07RVuGKbJujHJvj7iDQYKaeJMK8b2u1ImGWF8zXD/GLrP+L+DH UWZI8nKcLvANDvaELdhMEVo76VksST00h6+ptEjJ7TgybBLoUiOCth3GwvnZZXna2UYv 4aDbRFT8KTKqeiq+cruU8kxXGedHWA0XwG3UzQPCGNvMZV/kcwSqhvVS/ql17YduIa43 Fa3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=bY9rhR9plfKlGQXUMa3GLn8ct396NV4Vtjp2QrtbBQA=; b=LHUYiFSh5Kbt8d68w0QrHQ89AB9UqQu1/zqaPaA/5MgrB6p07VhhQhMh25eBhXLRyv BLl7xEvGHiucecSbgEH7KIHvAbJ9h+oBfq6mxuoLjN0+Elv1SiC3hc0wuvW8xCqbiX+6 yV2EhfCKiYuTcfbYl7WkjsZr4XbNFhX4uvV5lyfyEtkZPGfxmy/+HI0RUA0xcff6BmP8 N+f60jEME3w++3ysW7+Q4rk04AxbsAh5qF7rfJoSWHCCevpFnNl1tIiN/WblAFsWyCe9 CF9rktZ+hZEmQ9fWoWeKyEqSO5bZg6mawzJCTU0RbIS8p7nAE8mb3p/x+iBiMVE16v/t lyHw== X-Gm-Message-State: APjAAAVuqzMH8pWvVaobkHL/8mo/jop6Lq0fEs3sEXuPyZypnu/Z/G1E anIdpAs78mjr09rz0mM4m0Tl7wD6 X-Google-Smtp-Source: APXvYqwspKGAva3SAPkVwc8rbOmY2PpMojaLAdg/ZlAGHy42lqUv36+sLSkCDLj04wU7aDV9u0XaeA== X-Received: by 2002:a5d:9551:: with SMTP id a17mr284164ios.37.1567890313979; Sat, 07 Sep 2019 14:05:13 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id g4sm25207083iof.56.2019.09.07.14.05.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 07 Sep 2019 14:05:13 -0700 (PDT) From: Noam Postavsky References: <87lfvemb6z.fsf@gmail.com> <85v9ughs9i.fsf@gmail.com> Date: Sat, 07 Sep 2019 17:05:12 -0400 In-Reply-To: (Joel Rosdahl's message of "Thu, 29 Aug 2019 19:30:31 +0200") Message-ID: <878sqzn7g7.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 31981 fixed close 31981 27.1 quit Joel Rosdahl writes: > On Thu, 29 Aug 2019 at 18:05, Noam Postavsky wrote: >> A little awkward, but that's proably the best we can do without changing >> the signature of cleanup-f (which I guess would be much more >> troublesome). > > I agree. Alternative solutions welcome, of course. > > -- Joel None seems forthcoming, so I've pushed your patch to master (I coalesced your ChangeLog entries, by the way). 8d588f09e9 2019-09-07T16:51:24-04:00 "Fix flymake-proc temporary file deletion bug" https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=8d588f09e91e315c715cf824a9819a538a85cd9c