GNU bug report logs - #19449
25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil

Previous Next

Package: emacs;

Reported by: Filipp Gunbin <fgunbin <at> fastmail.fm>

Date: Fri, 26 Dec 2014 20:25:02 UTC

Severity: normal

Found in version 25.0.50

Done: Filipp Gunbin <fgunbin <at> fastmail.fm>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Filipp Gunbin <fgunbin <at> fastmail.fm>
Subject: bug#19449: closed (Re: bug#19449: 25.0.50; `auto-revert-tail-mode'
 tries to revert remote files even if `auto-revert-remote-files' is nil)
Date: Mon, 29 Dec 2014 15:37:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#19449: 25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 19449 <at> debbugs.gnu.org.

-- 
19449: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19449
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Filipp Gunbin <fgunbin <at> fastmail.fm>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 19449-done <at> debbugs.gnu.org
Subject: Re: bug#19449: 25.0.50;
 `auto-revert-tail-mode' tries to revert remote files even if
 `auto-revert-remote-files' is nil
Date: Mon, 29 Dec 2014 18:36:12 +0300
On 28/12/2014 13:34 +0100, Michael Albinus wrote:

> Filipp Gunbin <fgunbin <at> fastmail.fm> writes:
>
>> Fix:
>>
>> In `revert' value calculation, `or' is changed to `if'.  The "then"
>> clause applies to file-visiting buffers, this is where the result of
>> `file-remote-p' is analyzed.  The "else" clause case applies to non-file
>> buffers.
>>
>> Ok to apply?
>
> Looks good to me. Please apply, preferred to the emacs-24 branch.

Applied to emacs-24, thanks.

Sorry for excessive duplication in the commit message.

Filipp

[Message part 3 (message/rfc822, inline)]
From: Filipp Gunbin <fgunbin <at> fastmail.fm>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.0.50; `auto-revert-tail-mode' tries to revert remote files even if
 `auto-revert-remote-files' is nil
Date: Fri, 26 Dec 2014 23:24:43 +0300
Below is the suggested patch.

Analysis:

When the `auto-revert-tail-mode' is called it temporarily enables
auto-revert-mode:

      (or auto-revert-mode
	  (let ((auto-revert-tail-mode t))
	    (auto-revert-mode 1)))

`auto-revert-mode' then calls `auto-revert-buffers' which in turn calls
`auto-revert-handler' (fixed by the patch).

Then, this code yielded t:

+	      (and (or auto-revert-mode
+		       global-auto-revert-non-file-buffers)

which resulted as `revert' set to t.

In the end, `(auto-revert-tail-handler size)' was evaluted with nil
size.

This produces error:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  auto-revert-tail-handler(nil)


Fix:

In `revert' value calculation, `or' is changed to `if'.  The "then"
clause applies to file-visiting buffers, this is where the result of
`file-remote-p' is analyzed.  The "else" clause case applies to non-file
buffers.

Ok to apply?

Filipp

diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index f1074e2..514dc2b 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -589,8 +589,8 @@ This is an internal function used by Auto-Revert Mode."
 	   ;; the values.
 	   (remote-file-name-inhibit-cache t)
 	   (revert
-	    (or (and buffer-file-name
-		     (or auto-revert-remote-files
+	    (if buffer-file-name
+		(and (or auto-revert-remote-files
 			 (not (file-remote-p buffer-file-name)))
 		     (or (not auto-revert-use-notify)
 			 auto-revert-notify-modified-p)
@@ -603,11 +603,11 @@ This is an internal function used by Auto-Revert Mode."
 		       (funcall (or buffer-stale-function
                                     #'buffer-stale--default-function)
                                 t)))
-		(and (or auto-revert-mode
-			 global-auto-revert-non-file-buffers)
-		     (funcall (or buffer-stale-function
-                                  #'buffer-stale--default-function)
-                              t))))
+	      (and (or auto-revert-mode
+		       global-auto-revert-non-file-buffers)
+		   (funcall (or buffer-stale-function
+				#'buffer-stale--default-function)
+			    t))))
 	   eob eoblist)
       (setq auto-revert-notify-modified-p nil)
       (when revert



This bug report was last modified 10 years and 150 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.