From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#13860: 24.2; dir-locals-directory-cache unreliable in one rare case Date: Sun, 18 Aug 2019 15:49:49 -0700 Message-ID: <87tvae3x82.fsf@mouse.gnus.org> References: <87lia4d9xh.fsf@bredband.net> <8736i3ymrf.fsf@mouse.gnus.org> <87y2zqs2my.fsf@bredband.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="260619"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 13860@debbugs.gnu.org To: Johan Claesson Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 19 00:50:13 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hzU05-0015fb-BA for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Aug 2019 00:50:13 +0200 Original-Received: from localhost ([::1]:43272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1hzU04-0007EX-7r for geb-bug-gnu-emacs@m.gmane.org; Sun, 18 Aug 2019 18:50:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47929) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1hzTzv-0007DA-QH for bug-gnu-emacs@gnu.org; Sun, 18 Aug 2019 18:50:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hzTzu-000660-Hq for bug-gnu-emacs@gnu.org; Sun, 18 Aug 2019 18:50:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50073) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hzTzu-00065w-Eq for bug-gnu-emacs@gnu.org; Sun, 18 Aug 2019 18:50:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hzTzu-0008Hy-Ay for bug-gnu-emacs@gnu.org; Sun, 18 Aug 2019 18:50:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2019 22:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13860 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 13860-submit@debbugs.gnu.org id=B13860.156616859731848 (code B ref 13860); Sun, 18 Aug 2019 22:50:02 +0000 Original-Received: (at 13860) by debbugs.gnu.org; 18 Aug 2019 22:49:57 +0000 Original-Received: from localhost ([127.0.0.1]:58894 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hzTzp-0008Hc-KG for submit@debbugs.gnu.org; Sun, 18 Aug 2019 18:49:57 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:46590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hzTzo-0008HU-HE for 13860@debbugs.gnu.org; Sun, 18 Aug 2019 18:49:56 -0400 Original-Received: from [12.144.191.101] (helo=sandy) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hzTzk-0003E9-0P; Mon, 19 Aug 2019 00:49:54 +0200 In-Reply-To: <87y2zqs2my.fsf@bredband.net> (Johan Claesson's message of "Sun, 18 Aug 2019 21:19:01 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:165359 Archived-At: Johan Claesson writes: > I think one way to remedy this would be to explicitly invalidate the > directory cache every time a .dir-local.el file is modified. Something > like the following seem to do the trick: > > diff --git a/lisp/files-x.el b/lisp/files-x.el > index b71e9204f3..6b04518fe4 100644 > --- a/lisp/files-x.el > +++ b/lisp/files-x.el > @@ -491,6 +491,13 @@ modify-dir-local-variable > (cons `(,mode . ((,variable . ,value))) > variables)))) > > + ;; Invalidate cache (may be needed if this .dir-locals.el file > + ;; will be written with the same timestamp as is already present > + ;; in the cache, see bug#13860). > + (setq dir-locals-directory-cache > + (assoc-delete-all (file-name-directory variables-file) > + dir-locals-directory-cache)) > + Thanks; I think this makes sense, so I've applied it to Emacs 27. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no