all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: Justin Van Winkle <justin.vanwinkle@gmail.com>
Cc: 33194@debbugs.gnu.org
Subject: bug#33194: 26.1; Auto-revert mode causes emacs to use 100% cpu whenever a file is being written to in the home directory
Date: Sat, 03 Nov 2018 11:57:46 +0100	[thread overview]
Message-ID: <87d0rmjumt.fsf@gmx.de> (raw)
In-Reply-To: <CA+gsFk+aWLCm1X522EU6KScTa8nHky022rxU2=pszai=wF1yqg@mail.gmail.com> (Justin Van Winkle's message of "Tue, 30 Oct 2018 14:55:22 -0400")

Justin Van Winkle <justin.vanwinkle@gmail.com> writes:

Hi Justin,

> I mean it is certainly a bug to use 100% of a cpu just because a file
> that is in the same directory to a file you are editing is being
> written to, but it may not be unintentional behavior.

I could reproduce the problem. I have a running Emacs for some days, and
I've enabled `global-auto-revert-mode'. Starting scp copy of a large
file outside Emacs, brought Emacs up to 100% cpu usage.

The variable `file-notify-descriptors' contains

#s(hash-table size 97 test equal rehash-size 1.5 rehash-threshold 0.8125 data ((1 . 0) #s(file-notify--watch /home/albinus .emacs auto-revert-notify-handler) (1 . 1) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 2) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 3) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 4) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 5) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 6) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (2 . 0) #s(file-notify--watch /usr/local/src/emacs/src nil auto-revert-notify-handler) (1 . 7) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 8) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 9) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 10) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 11) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 12) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (3 . 0) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 1) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 2) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 3) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 4) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 5) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (1 . 13) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (3 . 6) #s(file-notify--watch /home/albinus/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 7) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 8) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 9) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 10) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (4 . 0) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (3 . 11) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (5 . 0) #s(file-notify--watch /usr/local/src/emacs-25/doc/misc nil auto-revert-notify-handler) (3 . 12) #s(file-notify--watch /home/albinus/src/elpa/packages/debbugs nil auto-revert-notify-handler) (6 . 0) #s(file-notify--watch /home/albinus/src/tramp/texi nil auto-revert-notify-handler) (6 . 1) #s(file-notify--watch /home/albinus/src/tramp/texi nil auto-revert-notify-handler) (6 . 2) #s(file-notify--watch /home/albinus/src/tramp/texi nil auto-revert-notify-handler) (4 . 1) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (7 . 0) #s(file-notify--watch /usr/share/info nil auto-revert-notify-handler) (8 . 0) #s(file-notify--watch /home/albinus/src/tramp/lisp nil auto-revert-notify-handler) (8 . 1) #s(file-notify--watch /home/albinus/src/tramp/lisp nil auto-revert-notify-handler) (8 . 2) #s(file-notify--watch /home/albinus/src/tramp/lisp nil auto-revert-notify-handler) (9 . 0) #s(file-notify--watch /home/albinus/src/tramp nil auto-revert-notify-handler) (1 . 14) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 15) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 16) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (4 . 2) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (4 . 3) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (3 . 13) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 14) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 15) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 16) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (4 . 4) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (4 . 5) #s(file-notify--watch /usr/local/src/elpa nil auto-revert-notify-handler) (3 . 17) #s(file-notify--watch /home/albinus/src/elpa/packages/debbugs nil auto-revert-notify-handler) (3 . 18) #s(file-notify--watch /usr/local/src/elpa/packages/debbugs nil auto-revert-notify-handler) (1 . 17) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 18) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 19) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 20) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 21) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 22) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 23) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 24) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 25) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 26) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 27) #s(file-notify--watch /home/albinus .newsrc-dribble auto-revert-notify-handler) (1 . 28) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 29) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (1 . 30) #s(file-notify--watch /home/albinus nil auto-revert-notify-handler) (10 . 0) #s(file-notify--watch /usr/local/share/emacs/27.0.50/lisp filenotify.el.gz auto-revert-notify-handler) (10 . 1) #s(file-notify--watch /usr/local/share/emacs/27.0.50/lisp nil auto-revert-notify-handler)))

As we can see, many identical entries #s(file-notify--watch /home/albinus nil auto-revert-notify-handler).
Every incoming event for "/home/albinus" triggers the many calls of
`auto-revert-notify-handler', although one entry would be sufficient. I
will check, where all these entries come from.

Best regards, Michael.





  reply	other threads:[~2018-11-03 10:57 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-29 16:01 bug#33194: 26.1; Auto-revert mode causes emacs to use 100% cpu whenever a file is being written to in the home directory Justin Van Winkle
2018-10-29 20:27 ` Michael Albinus
2018-10-29 21:13   ` Justin Van Winkle
2018-10-29 21:14     ` Justin Van Winkle
2018-10-30  6:21     ` Eli Zaretskii
2018-10-30  8:39       ` Michael Albinus
2018-10-30 10:41         ` Eli Zaretskii
2018-10-30 10:44           ` Michael Albinus
2018-10-30 12:28             ` Eli Zaretskii
2018-10-30 13:12               ` Michael Albinus
2018-10-30 16:18       ` Justin Van Winkle
2018-10-30 16:58         ` Michael Albinus
2018-10-30 17:02           ` Justin Van Winkle
2018-10-30 17:08             ` Michael Albinus
2018-10-30 17:09               ` Justin Van Winkle
2018-10-30 17:32         ` Eli Zaretskii
2018-10-30 18:54           ` Justin Van Winkle
2018-10-30 18:55             ` Justin Van Winkle
2018-11-03 10:57               ` Michael Albinus [this message]
2018-11-04 11:58                 ` Michael Albinus
2018-11-05 16:28                   ` Justin Van Winkle
2018-11-05 21:18                     ` Michael Albinus
2019-01-04 12:56                       ` Michael Albinus
2019-03-28 12:36                         ` Michael Albinus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d0rmjumt.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=33194@debbugs.gnu.org \
    --cc=justin.vanwinkle@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.