GNU bug report logs - #38644
26.3; emacs uses 100% CPU with auto-revert-mode

Previous Next

Package: emacs;

Reported by: Peter Ludemann <peter.ludemann <at> gmail.com>

Date: Tue, 17 Dec 2019 01:25:02 UTC

Severity: normal

Found in version 26.3

Fixed in version 27.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38644 in the body.
You can then email your comments to 38644 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 17 Dec 2019 01:25:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Peter Ludemann <peter.ludemann <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 17 Dec 2019 01:25:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Mon, 16 Dec 2019 17:23:30 -0800
[Message part 1 (text/plain, inline)]
This problem occurs with emacs 26.3 but didn't occur with 25.x.
Possibly related to bug#33194.

My hypothesis is that emacs is monitoring some files that it shouldn't
but I need some help in figuring out which files are being monitored and
whether that is indeed a bug.

When I run a CPU-bound job that also does quite a bit of I/O, emacs
becomes very unresponsive -- running "top", I see CPU usage for emacs go
into the 50-100% range.
(Ubuntu 18.04, emacs 26.3 on a 4-CPU machine with SSD disk)

The job I'm running is
    parallel -v --will-cite --keep-order --group -L80 -j8
(the problem does not go away when I change to "-j3")

As far as I know, I don't have any of the output files or directories
open (I have global-auto-revert-mode set) -- all the outputs go into one
directory and when I search the Buffer List, I don't see that
directory.

I upgraded from emacs 25.3 to 26.3 today, with the same .emacs.desktop,
and the problem wasn't showing with emacs 25.3.

I double-checked the output of lsof on one of the running CPU processes
and again couldn't find anything that matched with the Emacs
buffer. However, I did notice that file-name-history did match some.

Any suggestions on how to track down what's causing the polling?  As I
mentioned, this didn't happen with emacs 25.3 with the same files
open. It also doesn't happen when I start 26.3 without the
.emacs.desktop (that is, with nothing in the Buffer List).


"strace -c" emacs when not running the CPU/IO job:
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 31.63    0.009027           3      2950      2534 recvmsg
 23.19    0.006618           3      2057           poll
 13.38    0.003819           3      1100           rt_sigprocmask
 12.10    0.003454          17       209           pselect6
  9.17    0.002618           6       466           writev
  7.62    0.002174           5       405           rt_sigreturn
  1.21    0.000344          57         6           openat
  0.37    0.000105           4        30         1 read
  0.31    0.000089           3        26           timerfd_settime
  0.28    0.000080          11         7           ioctl
  0.22    0.000064          64         1           vfork
  0.11    0.000032          11         3           fcntl
  0.11    0.000030           4         8           close
  0.09    0.000026           1        51         9 stat
  0.06    0.000017          17         1           pipe2
  0.06    0.000016           0        48        11 faccessat
  0.04    0.000011          11         1           getuid
  0.03    0.000009           5         2           wait4
  0.01    0.000003           1         4           write
  0.00    0.000000           0         3           fstat
  0.00    0.000000           0         3           lseek
  0.00    0.000000           0         1           inotify_add_watch
  0.00    0.000000           0         1         1 readlinkat
------ ----------- ----------- --------- --------- ----------------
100.00    0.028536                  7383      2556 total

"strace -c" emacs when running the CPU/IO job:
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 30.79    0.013978           1     15384           poll
 21.05    0.009554           1     15799     12395 recvmsg
 19.44    0.008827           1      6538           writev
 13.96    0.006339           1     12446           rt_sigprocmask
  6.97    0.003162           2      1554           pselect6
  2.96    0.001342           0      3108           rt_sigreturn
  2.95    0.001338           1      1551           read
  1.88    0.000855           1      1551           ioctl
  0.00    0.000000           0        10           stat
  0.00    0.000000           0         1           restart_syscall
  0.00    0.000000           0        10           faccessat
------ ----------- ----------- --------- --------- ----------------
100.00    0.045395                 57952     12395 total

"strace -c emacs when running the CPU/IO job without
global-auto-revert-mode:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 37.41    0.001833           1      1860      1576 recvmsg
 27.88    0.001366           1      1619           poll
 14.78    0.000724           5       142           pselect6
  7.43    0.000364           2       201           writev
  6.29    0.000308           1       570           rt_sigprocmask
  6.06    0.000297           1       318        24 rt_sigreturn
  0.08    0.000004           1         6           write
  0.06    0.000003           0         8           read
  0.02    0.000001           1         2           openat
  0.00    0.000000           0         2           close
  0.00    0.000000           0         6         3 recvfrom
  0.00    0.000000           0         1         1 faccessat
------ ----------- ----------- --------- --------- ----------------
100.00    0.004900                  4735      1604 total



In GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2019-09-16 built on lcy01-amd64-030
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.3 LTS

Recent messages:
Making completion list...
Saving file /tmp/t10.kythe.json-decoded...
Wrote /tmp/t10.kythe.json-decoded
Quit [5 times]
command-execute: Buffer is read-only: #<buffer *Help*>
Mark set
Quit
Mark saved where search started
Quit [2 times]
Mark saved where search started [2 times]
Quit [4 times]
Configured using:
 'configure --build=x86_64-linux-gnu --prefix=/usr
 '--includedir=${prefix}/include' '--mandir=${prefix}/share/man'
 '--infodir=${prefix}/share/info' --sysconfdir=/etc --localstatedir=/var
 --disable-silent-rules '--libdir=${prefix}/lib/x86_64-linux-gnu'
 '--libexecdir=${prefix}/lib/x86_64-linux-gnu' --disable-maintainer-mode
 --disable-dependency-tracking --prefix=/usr --sharedstatedir=/var/lib
 --program-suffix=26 --with-modules --with-file-notification=inotify
 --with-mailutils --with-x=yes --with-x-toolkit=gtk3 --with-xwidgets
 --with-lcms2 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs26-TP6iDo/emacs26-26.3~1.git96dd019=.
-fstack-protector-strong
 -Wformat -Werror=format-security -no-pie' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro
 -no-pie''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS
LIBSYSTEMD LCMS2

Important settings:
  value of $LC_MONETARY: en_CA.UTF-8
  value of $LC_NUMERIC: en_CA.UTF-8
  value of $LC_TIME: en_CA.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: GNUmakefile

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  global-auto-revert-mode: t
  show-paren-mode: t
  display-time-mode: t
  savehist-mode: t
  desktop-save-mode: t
  cl-old-struct-compat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/llvm-6.0/llvm-mode hides
/usr/share/emacs/site-lisp/llvm-7/llvm-mode
/usr/share/emacs/site-lisp/llvm-6.0/emacs hides
/usr/share/emacs/site-lisp/llvm-7/emacs
/usr/share/emacs/site-lisp/llvm-6.0/tablegen-mode hides
/usr/share/emacs/site-lisp/llvm-7/tablegen-mode
/home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode hides
/usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode
/home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-autoloads
/home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode-pkg hides
/usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-pkg
/usr/share/emacs/site-lisp/dictionaries-common/flyspell hides
/usr/share/emacs/26.3/lisp/textmodes/flyspell
/usr/share/emacs/site-lisp/dictionaries-common/ispell hides
/usr/share/emacs/26.3/lisp/textmodes/ispell
/usr/share/emacs/site-lisp/rst hides
/usr/share/emacs/26.3/lisp/textmodes/rst
~/emacs/prolog hides /usr/share/emacs/26.3/lisp/progmodes/prolog
/usr/share/emacs/site-lisp/latex-cjk-thai/thai-word hides
/usr/share/emacs/26.3/lisp/language/thai-word

Features:
(shadow mail-extr emacsbug sendmail eieio-opt speedbar sb-image ezimage
dframe find-func completion help-fns tabify man novice pulse misearch
multi-isearch solarized dash quail inf-haskell haskell-decl-scan haskell
haskell-completions haskell-load haskell-commands highlight-uses-mode
haskell-modules haskell-sandbox haskell-repl haskell-debug
haskell-interactive-mode haskell-presentation-mode haskell-collapse
haskell-navigate-imports haskell-compile haskell-process haskell-session
haskell-hoogle edmacro kmacro sort autoload radix-tree cl-extra lisp-mnt
help-mode mm-archive network-stream starttls url-http tls gnutls url-gw
nsm url-cache url-auth vc vc-dispatcher server erlang tempo cl perl-mode
asm-mode conf-mode jka-compr add-log rst haskell-mode haskell-cabal
haskell-utils haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme rx haskell-align-imports
haskell-compat haskell-complete-module haskell-ghc-support flymake-proc
flymake warnings dabbrev haskell-customize go-mode url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util mailcap find-file ffap etags xref project sh-script executable
tar-mode markdown-mode noutline outline message rmc puny rfc822 mml
mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
elec-pair mhtml-mode css-mode smie color dired dired-loaddefs make-mode
python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize
parse-time format-spec smerge-mode prolog align shell pcomplete vc-git
diff-mode easy-mmode js advice sgml-mode dom json map imenu thingatpt
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs finder-inf info package easymenu epg-config url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
autorevert filenotify grep compile comint ansi-color ring cus-start
cus-load time-date paren time savehist desktop frameset cl-loaddefs
cl-lib mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
xwidget-internal move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 791439 152674)
 (symbols 48 44537 1)
 (miscs 40 2000 2396)
 (strings 32 134121 30613)
 (string-bytes 1 6691533)
 (vectors 16 70253)
 (vector-slots 8 1997947 168512)
 (floats 8 365 431)
 (intervals 56 50166 2906)
 (buffers 992 501))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 17 Dec 2019 14:00:02 GMT) Full text and rfc822 format available.

Message #8 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Tue, 17 Dec 2019 14:59:23 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes:

Hi Peter,

> This problem occurs with emacs 26.3 but didn't occur with 25.x.
> Possibly related to bug#33194.

That's a good catch.

> My hypothesis is that emacs is monitoring some files that it shouldn't
> but I need some help in figuring out which files are being monitored
> and whether that is indeed a bug.
>
> When I run a CPU-bound job that also does quite a bit of I/O, emacs
> becomes very unresponsive -- running "top", I see CPU usage for emacs
> go into the 50-100% range.  (Ubuntu 18.04, emacs 26.3 on a 4-CPU
> machine with SSD disk)
>
> The job I'm running is
>    parallel -v --will-cite --keep-order --group -L80 -j8
> (the problem does not go away when I change to "-j3")

You are reading commands from STDIN? Which?

> As far as I know, I don't have any of the output files or directories
> open (I have global-auto-revert-mode set) -- all the outputs go into
> one directory and when I search the Buffer List, I don't see that
> directory.

It might be the default directory of a buffer not bound to a file.

> I upgraded from emacs 25.3 to 26.3 today, with the same .
> emacs.desktop, and the problem wasn't showing with emacs 25.3.

In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a
chance to run this for test?

> Any suggestions on how to track down what's causing the polling?  As I
> mentioned, this didn't happen with emacs 25.3 with the same files
> open. It also doesn't happen when I start 26.3 without the
> .emacs.desktop (that is, with nothing in the Buffer List).

Could you show the contents of .emacs.desktop?

What happens if you set auto-revert-use-notify to nil?

What's the value of (pp file-notify-descriptors) ?

What do you see, if you remove the comment of the message call in
file-notify-handle-event (lisp/filenotify.el, line 93)?

> "strace -c" emacs when not running the CPU/IO job:
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  31.63    0.009027           3      2950      2534 recvmsg
>  23.19    0.006618           3      2057           poll
>  13.38    0.003819           3      1100           rt_sigprocmask
>  12.10    0.003454          17       209           pselect6
>   9.17    0.002618           6       466           writev
>   7.62    0.002174           5       405           rt_sigreturn
>   1.21    0.000344          57         6           openat
>   0.37    0.000105           4        30         1 read
>   0.31    0.000089           3        26           timerfd_settime
>   0.28    0.000080          11         7           ioctl
>   0.22    0.000064          64         1           vfork
>   0.11    0.000032          11         3           fcntl
>   0.11    0.000030           4         8           close
>   0.09    0.000026           1        51         9 stat
>   0.06    0.000017          17         1           pipe2
>   0.06    0.000016           0        48        11 faccessat
>   0.04    0.000011          11         1           getuid
>   0.03    0.000009           5         2           wait4
>   0.01    0.000003           1         4           write
>   0.00    0.000000           0         3           fstat
>   0.00    0.000000           0         3           lseek
>   0.00    0.000000           0         1           inotify_add_watch
>   0.00    0.000000           0         1         1 readlinkat
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.028536                  7383      2556 total

inotify_add_watch is an indication, that file notifications are in
place.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 17 Dec 2019 16:18:01 GMT) Full text and rfc822 format available.

Message #11 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Tue, 17 Dec 2019 18:17:04 +0200
> From: Peter Ludemann <peter.ludemann <at> gmail.com>
> Date: Mon, 16 Dec 2019 17:23:30 -0800
> 
> My hypothesis is that emacs is monitoring some files that it shouldn't

Emacs actually monitors the directory of every file whose buffer has
auto-revert-mode turned on, if you use file notifications for
auto-reverting (which is the default).

> When I run a CPU-bound job that also does quite a bit of I/O, emacs
> becomes very unresponsive -- running "top", I see CPU usage for emacs go
> into the 50-100% range.

Does "a bit of I/O" includes creating, deleting, or modifying files in
a directory where you have a file whose buffer has auto-revert-mode?

> As far as I know, I don't have any of the output files or directories
> open (I have global-auto-revert-mode set) -- all the outputs go into one
> directory and when I search the Buffer List, I don't see that
> directory.

Turn off auto-revert-use-notify and try again, would be my advice.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 17 Dec 2019 18:29:02 GMT) Full text and rfc822 format available.

Message #14 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Tue, 17 Dec 2019 10:27:36 -0800
[Message part 1 (text/plain, inline)]
So many questions (thank-you!) ... I'll try to answer them soon (and there
are also a few experiments I should try first).

But first: I see different versions of this discussion at
https://lists.gnu.org/archive/html/bug-gnu-emacs/2018-10/msg00997.html and
http://emacs.1067599.n8.nabble.com/bug-33194-26-1-Auto-revert-mode-causes-emacs-to-use-100-cpu-whenever-a-file-is-being-written-to-in-ty-tt468378.html#none
(the
former has a 2nd thread, which mentions the patch in Emacs 27) ... what is
the correct way to interact with emacs bugs?


On Tue, 17 Dec 2019 at 08:17, Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Peter Ludemann <peter.ludemann <at> gmail.com>
> > Date: Mon, 16 Dec 2019 17:23:30 -0800
> >
> > My hypothesis is that emacs is monitoring some files that it shouldn't
>
> Emacs actually monitors the directory of every file whose buffer has
> auto-revert-mode turned on, if you use file notifications for
> auto-reverting (which is the default).
>
> > When I run a CPU-bound job that also does quite a bit of I/O, emacs
> > becomes very unresponsive -- running "top", I see CPU usage for emacs go
> > into the 50-100% range.
>
> Does "a bit of I/O" includes creating, deleting, or modifying files in
> a directory where you have a file whose buffer has auto-revert-mode?
>
> > As far as I know, I don't have any of the output files or directories
> > open (I have global-auto-revert-mode set) -- all the outputs go into one
> > directory and when I search the Buffer List, I don't see that
> > directory.
>
> Turn off auto-revert-use-notify and try again, would be my advice.
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 17 Dec 2019 19:31:01 GMT) Full text and rfc822 format available.

Message #17 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Tue, 17 Dec 2019 20:30:26 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes:

> But first: I see different versions of this discussion at
> https://lists.gnu.org/archive/html/bug-gnu-emacs/2018-10/msg00997.html
> and
> http://emacs.1067599.n8.nabble.com/bug-33194-26-1-Auto-revert-mode-causes-emacs-to-use-100-cpu-whenever-a-file-is-being-written-to-in-ty-tt468378.html#none
> (the former has a 2nd thread, which mentions the patch in Emacs 27) .
> .. what is the correct way to interact with emacs bugs?

Just reply to this message, and keep 38644 <at> debbugs.gnu.org in Cc. Whether
you keep me (or anybody else) in the list of recipients depends on your taste.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sat, 28 Dec 2019 21:14:01 GMT) Full text and rfc822 format available.

Message #20 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sat, 28 Dec 2019 13:12:24 -0800
[Message part 1 (text/plain, inline)]
> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a chance
to run this for test?

Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode,
using the same desktop file (and same open files) that was causing problems
with Emacs 26.3. (Sorry I took so long to test this.)
Emacs CPU utilization is now ~30-80% (according to top(1)) instead of 100%;
and responsiveness is good. Of course, it would be nicer if emacs CPU
utilization were less, so that I could fully utilize that core (I only have
4 cores, so losing half a core is notable on large tests).

Michael Albinus - you had a number of other questions ... do you still want
them (or some of them) answered?

best,
- peter

PS: Here's the desktop file, in case that can give some clue as to what
file or directory is causing problems. The "compilation" processes both
input from and output into /tmp/pykythe_test -- as you can see, there are a
couple of open files from that directory, but they're not being
continuously updated, only once or twice per test.

begin 644 bug38644-desktop.gz
M'XL(`&;#!UX``^P]:W/B2)+?YU<HV+AHN^,$>DO@(&)I@]UL8^,SN&=F;S<4
M0BI`8[U:*FSHN)C??IDE(0D0-G;;O7>Q3,>@K*RL4E96/JI2)?GLC.,_\IP?
M.J3%$=^R$]YSD^B,\\C2M2V/G[B!XP:S%CWC[)!!W().>8-GQ*SU+V=P>;/_
ML+<N2>YI&'$7KD>X:1AS/;S9V]_G/"86)0XWLBC<T^8D <at> Q/EEJ"T9(.3!+%9
MYF6:\>(#[0.)$S<,@$9#$L9=@33J0ET5?L&:2R^<6!Z7$)M"5>N7DX30;YR3
M=LDGU@-Q^&EL^03PW'_GD,B=2(J <at> BYPJ")+$Z4U#D1$6A%/N)&O-U;F:)!BU
M4ZX6$4KBOSZZ";5BUU(G-2YP/?;_"?SGNX$[64RG)(8F%#I8!`ZQPQA'#J40
M^(Y=A_`Q<=P8&`7<-`PH'UG(#F7-:GRW<]7A[R:+@"ZXJS`(^0!%X6U=/O*2
M`3_XS^<%WDU"4=`4C1=K6:]OU=<DC!T2\X^N0^?0)\K%#8#7`%5VMRYV9W/*
M.^Z#NUTS"2D-_<HJ$`QE-I#8<>A!OU:<0!7K"ZKG8>Q^AR%M$K!QQF06AR!F
MW <at> Z]D,EOXEGV/6,<KMN5CW.7$JSTPT5"JAJE(]JM@!L3$O`SR_<M*'IN0/@D
MLFRP4RR2*07U@@*!5D8NAPT4B#^)B.W",&;>*IHG:;?9>/AB,)OX8AS(-PD6
M#(L,H(Q$0%)KLH%#D<X),@`%#4LT#+T=$NI2C\#UT7(IWIU_]#.]S<FC,''1
MGA`?1FSJY^X$R)UP,?$(GVI[*@/7#@.>KB*2=6(M:,C'EIN0=<$+'TD,!7L1
M)W"[C'82+C<'O-8,4=O$YT-B%987S:U4JM/07B0\W-VWHA1CV3:):%J!>K+P
MO'0"4=G<!(;@N725,9K<NQ%/K>0>;@+%[SQ*&SLBP8,;AP'(G'(UL]V8ASYI
M,!?02!TX>BY>E'A1;X#W3I&VYP)]C:L-SLUQ_ZK7)H%YWJG?C2]X`["7XR]F
M_\J\&G;O!KTVN(L$27NCT?"F=]W^'ZZQ2&+6F4>2)')!0O^!%".@Z`^OS:O.
M=>>R=]OV0C"71N&(6G]M4#]JU/OG/7X1N,N&**GZ?S*H1%1!@RS];61V>Y_N
M+LWQ\*9_/FK_;<3U;F^'MV<`#(:7Z5CZW=[UN'_1/^^,@9&M4=UTQI\WY%.'
M_ODH#M&7XW!:Y<J(Q)ZZ <at> WVR2=VVXEFXBT[EP-`HN+28;)7S8E'!@+28XV88
M$\KM,D026!%2P3A_ZUZ:Y\/KB_ZEV>W?CMH-0NW&TIGA__R"^=G6&H?DG;OQ
MY^%M?_Q[NQ$O`N@:>!8AN#1FCM_X#8P"71M=93W?WEVCQF#76_1`T/UT-S+7
M:H!PI]N]A6(;I[(5672^?8],MX:7UQU00R8PG.WK(=ZB-_H"LYUWV.^VZ=Q-
MP/?S#HD@.&',0NKN54;23H>7*79OT+OY/+S>UFX<Q:C7&;<3"/?(]>CSX.N@
M+0)TW?_-'(T&YGGO=FQ>]$'YF:"2Q&O8X/Z3AFWQ"+A3%V^>U.V8YNR.>[=7
M_>O.`#J__0KZVVZ)=5E04?-ZMP-UT/_4WE4PSYVD$'9S<VF"X5R/S?[UQ7!G
M-H)%-&N,ZK-HQELS,-^6T!+7TWUW>XOM,HEE8F <at> QOH`$;#E3B)O/G5&O+6$S
ML&ZPE!XHR%]=?VWD_S7>-?S1Y]Y <at> T&;V/K&2.6"^CGOF5VB)$E<E`;O#P;>7
M,"Z?EU2-A2;`_MJ_[@Y_98:'K(Y^[7^]2C6G;!_)H_O@,P.]P4[_WFM[A&:*
M`)XHY6;4GEFNU[+H/3^!!<J,9'(U!\-SD#E(U[P=#L>[(DZ5X?KNJG?;/]]V
M=+E7&=Z-;^Y`)2A$UCAMLM;=+2^"][RZ,H<WXW;_>C3N#`;F)Q1JU8U354NU
M=W-NLLIN9]S)K)39_MR*26-MHR5GP?"M$DVK\6#%3'O0\IU&M <at> S<NN?X]YM>
M>RF*Z<QVSL\1_ZD_0&-G$S+ZG&G<#1B7**L"F\K?QMWA5:=_W79]6&4$4Q?]
MQ&?0I?(@41:_=C>&G<1V(UK=K^B<9,;$IAYL/[J?);N^UR%3LHSBACVW <at> H!X
M22.C;+VX!?J>WD7G;C`>I?<LB6J&0\B$6H<.K(5'Z^B+*BSW_+8'$:X1QC.P
M-[SW&#3:#7`*6&AN"%,9UN#:Q(2PJIJ*/A'-B6QHIBA.)4FR%4-IBALR9-I>
M,,/FDS38A"@E6UNZ/AO#AL<K=.4.?$KN'<LSC-.6:7AG)XZ/P.P'0U`N7-E`
M&0(S*-SP]O>G9>1;@6/1,%ZMI<34!**$.1J>?]GV2_=DA8LK<)+SC+>OX^M;
MQA5RO>'74^/YQ(R'Y]T`@K[GF>!5"/>/VHX!_:,&3=@(F'>A\8*L'4LZ;\PS
MY:(`2?8*B5UVO\!T=D"T;,4#F.&@6Z6PZ^IN?W0SZ/S>;J$-##K7ERC,NU'A
M*[I?4L<)([SJ7=^9-[>]B_YO;:8G?#H'5Q!MQIW;W[?F`6J8;]M&`^/G <at> R'Z
MCHH%5;JFPDY[G='=;0_N.=[N()_@.&D++<=M"^*9K+2\@`%:RY^W!:$5N6U%
M.)/E5A(RO-IRUL#$2:O.!+%EE^`P9K"(L.]B)\FB+>MGBMA*9FU9.%/DEFTQ
M0&S11P9(K1``!8&$,F*E19;L1E+K8QW6=PP6$9Y]SV$KMDOP'P6-5=!X<ZN`
MORLE>%Z"_8*(>D5CNBS!W\,"U <at> O\=S<JX!SZ>PXY!;+$NA>7X#)8W*1T[^\@
ME8*/4F'R72K!!<TF+)4:%WR120['D9_#?Y2$_5B"20E.2G!<@JW24"R;%/R'
MQ;#LR"T*)3F6!&);!6N/;L%:\EC`3 <at> DFB5.P'\TR!468%`6_7.-O5,W<:0Y/
M_"B'HXE?P+,2'!4PG5DYO"S1+\LTI?X!+@I14#"1/&S`WPM>2T21O2SPX4,!
ME\>V,6JI1'1?P(^DQ&M8&IL?*06LE.]0*CR$DQS^1G,P6)1NX!>PE11#COT2
M^%!T,_7L <at> O[!+>'+<-'GS,M!IP"7=G&GY:.3PZL29W9IM,2?EJ3P4((+.5L6
M<":@3P1XD8-3KX3W%:N`7:<,NT7AOD04R26XZ"B<S7(X+L@?K8<228$/HT62
M%Y)HF</+))IF!8R$@[LQ!,*M10.F`-TD\JS5.E?!8N1F;@D3NE#C9;FJ++=1
MD4"BKGV_PER1E629"7X1P6)@G2]9YR0A>#O84F^*&G]N=`S>4`6-5SKR16V#
M#-.-',U:YTD3EKE$IC#5D^<A810NI=:$)7PP6X6D35EGR1[,<,K-=0HG@/Z+
MD2,G$+8Q&[*$/FR7I <at> 2`P'QGD93!#!<B"D8R1$K!NQ#,8V1(*1,6:'63/+&F
MB)4VB+>0D;LD7L&!)&]6Y)PH0D6#XLXBRR=MM2NJ]<K6&2NJ4=%TS:8!4GJP
MN9-M=AB?6\R+NLA2>2%F.0L92CDNIU2;+,?%,K=%\[I08//F#&F'/BQ_+$SC
M\9[KNY1I@#4]C"]#%PYC2Q8JV!+JZCZVLD1Y[2/P%[D>X^]C#>R$>,1.$^;S
M-/F7I2O37&K"&?`OR[JC[*UX!HO=K%3.'R.-!/:!5R&]8O9OHT^'."S;@'>+
M0I=ES46C*4B&UF0V:\5KE*BP^3R)8O*0Y3T3[J0V6;@>!0;J;&M6_R,!*6/2
MW\'TB<C2L]M#%`6M*2CI16/U0QO<!M9P*EI'#3R$:8?A/7'JT:H&BF08S?0W
MJV5H130$]L/Z@'%9U)ZS7D2%]6N:ON4&ILFH10[&U#P]S6<?_5#F'PY2!.5`
M_92J]/,`1:BSW4(]WVWGFI`Q^:_1!EF2#+&D"K)HZ%J%'F1[\WKDL0G0#38I
MG]*Q#=R$LHG15)7-8&Q+&:6LB:=L4BH>'VT%'S\,PLK8XUCQ?47HR1]V5&;_
MJYZ=8)P <at> MCMU\6'9;-]#E#+59%9^WD3IJE9^]M#<"$S/QJ6#'VYD`4P5\O"E
M"A41]%Q4!5[IBEV^*8GGO-;[)%9%T-U8MA&BGHIEF^%I![T9*\07Q#+EM#*2
M/1W(*L+?OLIJSJJ"&$BG,EH(%2ZBPD'L^@?C9>%K[1XVG-GS44*`?X?Z!>$5
M?H$YTU*$0"/^Y^G68V??31)@A\='&CSL%0,HL#MD=-2:)6DEKJFXVIZ$7WX=
M=RY'M8W&S'3P(`'E/IP<V'[=00([5GO.H\"@\5^@.3X>RFA-2A):`Y&(.JP+
MUZ1D!JM`?KH(V%-V)K1UG6TE!):UGL.G"&976:?1V>H>^S)^H*O:HTOGYO1;
M@*D;?&+N@?^LX8,$N&`L,R<K2LQP.H7!80V(%2[V/#;Q`AZ*!#0Q4510#@C$
M%1IRBX1P]!$3>%;`$3]BSV*6P``2=0(L84BOPS59)7C!9_I3\$5.(<AL+)OR
MK,U<"OL%WV=WAR4!:STCL%BP8^(S'O'`17I)1^-;]X3_`P<8^^R'X^,I`/3>
M <at> 5TQ,BEB!BUY="./X_FL!5SR65M0%SO"XISFQ8PJC$APLL$V"(/$O,7TYR3]
M7>LNECYRBHY/YVT*C'Y8TS_DJ,US%'+3T+BFIJD0YB1#%CE%3@]2K!OFAR76
M!R;8Z0<,,21PN"7X].7I\4C$O].1B+<Y_E"UO$G#!A_%F>\^?>5YAY]VJ`&9
M7I]IV#BO\`XIB/2,`M;=!1',!XLB'*#<=`&WO9"Z,"X4WK@`DU"-CL)WI&[G
MB51$<?1$*J__)'5W`5AQ8FIC19C-(O-,5;S^'T0RKF.V-GZ&^=-2)J8IY4M9
M/95:X(2/F?A52=%A3ZIABW!!F:?8K99JIYL9G)V#+L^D=&!Q8\7`6]JM(NFZ
M+.O'1,_K$SVZ49GH8:F%K76RI.\NE#7Q92OE <at> Q,]E7P9S0/9DJO8.F!_7UZB
M)&SW^Z(=_K.K^-+N_J`5/$R$7EK!-P7]H.1(M?"JLF25POO)6;*WE]KVI@<7
M<N^>8'BK3,A[)BH.3$HT-?&"5W3]G)>%3SHO2+)0F92H"(X'!)0#0\\1>40>
MD4?D$7E$'I%'Y!%Y1!Z11^01>40>D4?D$7E$'I%'Y!%Y1!Z11^01>40>D4?D
M$?GOB3P>D?__<$2^_`[*P2?DGSTA(KSTA(BH-YO:]C&1?U:?(L1C$Q1UZQ[9
MN"<\\')/8G:NQ'(<?AZ&]]R']9EDA^`A$(8[\2Q_XECI46(\-Y$VY*`CAIH!
M:BT7[B,E?O2QQHZK^/?P\Z$X;L%TG<^/*)=J_ECX$8_'/4O'E[&+[/AT?FZ?
MGT-U&*_PT/>?C?5K3(WM]YEJZ4='\*,T,$MA(-?U1G8P'%]I@*951_;+<[J'
MI%YO7('HINF!=W:(/W_!:*O)#ITHIC??.?K?^/+[^'-O%SVZ^S0:-S[=]0?C
M_O6H\>3K;_OYO>UUNE>]NK^?:$8"<]VYF:Q\<$=/R6!#3+M<3^+P$;^J85E6
MG9VO_Y/1/"RR>E!5ZMH-*@JF8]&,YH!N7BBV/:]G(`6[+\R'<(@DP0;=B"8H
MR2T!E$[7[65N'Q>KB"1SXH`P'-12N6%-[!(W!^K?GWN&5J_OKWQ*3W>;)&G#
M?,IS_65?%\JM+'ET\7-B7CC#8FS%J\8[S-B/S'3*^0'\)LO2*,&VGY[?E[&T
MOD["D"8TMB+S:9O^:2K_OC?*I?E-?LJOK-^UW5]MLE.&K_*BKV3YY_N;*K5-
MA5?2Q,5"VBAEA5WU?HV1'FJ-`)49_/8M>7A+8]F^TS.3<V!?IND&+LU>;=P?
MFNISZC\;`<L!H#IHD"58N9WK[0$!<Q]3.7X_U\N"Z6='546PMV)K$<%HUN';
MC*W'=9A_5@+"P;(R`_+X0L&^Z?W?29$K?<RN*-?H)YPUUAZ\NCK(H583;;P*
M_",=;7UGX0DJ%,,3)+!V <at> DV5Z9#)8O;2>'&0J"LG_ <at> F[9.COA]SCF3M6S&WQ
MT=6&OZH8+/<\R8MGZ1GY/Z41Y>"5B7W'*'#MN[[@RPQ)PR?QC,`:TRVUC_!-
M5<>DB\@C=7RUEP0'K`X*]4IC9N4^!MQL14?UA*[@5BLKFN;-K7U+C0/M/5K)
MC-Z<Q?CBYH;D4]IL`Q8V(``\X.<'ES&9)NEO?19N4>-6L'N@"&#OC-]JS[Z*
MD7VKG>-Y;OT=#7QA <at> 3B<&W`)OA#/WCSEK`01V68>*5J_Y&\IV^R[\NN=/GXE
MGMN<WWW;<:3;17TH/LS/7BE!U`GQG-!.WS"9L:_,\^E;H`3?T67X4Z!C'PIA
M]`!I:6H%BG#)?S^<K%_AR-]G<6&4Z0?HE::A:YRA:9RJ:NGWYS-BEFA(_R0`
MGZQ`0/C::NE/`["/.6->X <at> 5B>68/C>2;Q0_I*JV0RAY1<`FSG%PLHFXP<E$V
M#%E[C50T'6!9%61.-Y1#!7.H2-XA[8']/E/_8;H('`O=!TCP.8DR*3*"IBZ(
MBF&\0HC82FSJ(LA25>4#A(A_N,`%;M]*MS;]`+;8P7Q(TV(OM3OV621&KXJ2
MMD_#J#7)DZ:8775A@`'%SV<D:4_<4_(SM*;(&4)35T5.%J3WD%\Y:\?$4\"'
MFA[S0EJJ*N++E<304$E40]$5$*KZUI;VO(*4-./'5`*_B95*05.5=U((2>%4
M3=4EE5/%0]SUID*D?PSD,79IYBE_7(#E)1#2;Y5?*4K\S`TC5U#WWT64JMB$
M**'*"OXEF'^9:\K6H(5G*A"O%)UH*$^:XH^)33)DA6NJNB)JG*2)[R&WIQY7
M(,%&Z;5"$IK-+3'1-Q02A`1.%PQ)5CE#>A<A/;'>WLU38XL*W&MM4Q;2M94!
M"O#V2B:`9Q,%%91,%'2=:S9?[N;>QCBSO=_:-(OB*^4&OON]#%/@%%TVP#";
M.JY;P;7]Y#`:A?D"JP!?*2?94.5T0Z,;[R0K6+%Q34F398G3C)^H7OGS)20J
M%S[X68&?I8^C#UAS2<I:HZ2FVFSND=2V9#;?Z:^2C@+['4Y4FIRL'K(:>TO7
M5:0&UUXK!U_KZ"4EVPB*RCNLR01.PL4#ITNPC0;/_],,;^?1"'-3/RRM=+_W
M+E8GP2Y0X72EJ8&@1.W <at> 7,,+=S*EC<PK]C&:*&;+SI=F4 <at> 38Z&I-6);K@@RK
M?_GP9,J+!I@>G$@G6_S1-9#Z?O%(-&1#AS40[%301@[9N[Y(&+N+1"A)-)01
M$Y-\V;-1^B&K>.N%HM8$DU!$`=93HJQ+H#$_T=GN?="#C:J0+S$B_`AC&I<4
M;9_/W2\44<3X`_L_637^E[DKZVT<2=+O_2N(?C$6`]MY'X\+]*(QV-D#F'T7
M:)MEJTN'6Z+:=OWZC2"3ARA1RDPQ60-TEYCI*ML9C(P[OH#[.+LE,\QG_I*=
MP9`*I(@VU0\')K*2L6"22,'A#[A%($"5GM-9[7*=^+>.5G=8^?:R_0B_3@+X
MHJ:&$*.QV?[%$A=O$;H+8#0R1C.C)Y>Z5]AEI%X,_^GXEX(TDI%.3,-A <at> SF'
M:Z$R <at> _^49;9BG92<,Y9J_V/?&G/UX]T?>S])PH23)(P&QI^5`<8P"HQ]<,/!
MJN6IW<AKJ6='@?[:EPQ"*EG?&'S2$80`40K*1G&#P8G93=32MO:\O5$5:U['
M!0V1DYLM0"EA01,K8I#*C/K<EUA*';%+"C$K':48'[LYOB+6@&UB3*8Y)02,
M%ITD$7&A,@MH;!JAVGL.,DF(BRE0V=V?TN?VZ"J-13`.I4'/"/8SPE%PC,.J
M6.#LOH80IULA]`#_JQ8HP08:T@-->RHXX6"U\KFY`4<+*M&0X6 <at> 5I%<5<^D[
M:6PP1U#0I]*`=P-R521+S$U81%UYC"=;O <at> K(UGDM$:J#@50$@[C::$K!@ITS
MUG:F.O,7%P>?)$K"*!F+N=V@@A3(;8525BG">";)Q*4']>_X:U<"C[_QRW)7
MO/C)#=[(T?Z5N3`"HGL+O_[;95Y1&9.:<W <at> V5-/,UNG-2=Y_]_*G>?,,WDR"
M-\^DLCJ3&@LF,IU&T71E_;ALGZ)SC;4,I:-JY`:"2(QP4RR_X023M-,;KKU"
M_$H^MH]!JM1P,;@3GM)19I2`*LFD!'6B0"/YB,>H*-D9-?K\EN_VRVUS]N-E
MV/E-;4I(IL,4J<B4@"N?<6*5X*!DTE6X_-F]XY <at> CDJCW*^!/"]:SLE6FE$]?
MW-+K?ZB,XT-,[0[5RK#8`\+!1`8"6V*^B$S.P%U+1WV^&-.?B\C["<>CC%"L
MM+%@Q`CC4\$VA>?<1&?KTKU%-0G(2>S3K?C$F'OI5(Q%%&X0WB*C5D@+:AR)
MEG&=Q/2[(-_V^7K5\$WO.<A%X+I6;QLWT,M?L%$CX4].I(%[8462TL=+PAU.
MT!?N1\L0$DCA4LPQ)!!@QAE.F1'H0\]$`NPG?(1OB1-XVO=_M`PYOV"2-<4(
M3(93`-0:2$A0`Z#JDL3MSU#@\_T9A$K+$(]5L;;;6.#!VJS&R590R:>65L7S
M!L6DN;1:@8A(4"'E_)Q>]U^8H\.H/G<V]'3.D/R:;X,GY <at> ICL)SKC%GBZ=KT
M>PEQH_<<J.&I4X%:ZU`G'GYY%`,9M]8R-,=3IN0N=NO]XI((S>)NC4^^`4!7
M!V)4:`(.#!Q#L23&**,S,WUFW^/\S_LNA^*>[^#3,XOB9!AE;"QJ?O'L)*-*
M4L%P\&ZZJUKWD(5=4^U$T*5PQ-G^SBL7EF?@BV/5/5P8:K`:*CP84;6OY9_W
M8$*:A_*SO-\^[;<K^%+](L>^$MFDT1-4GJ\6SB <at> H',[02BH)X7.OI\Z0/:U@
M(]^\++:[?/-:M'P^LN_-\U2?V"W^9*&@LC,NM`:IE[PV_/R-[S*&@;E"<,?Y
M#2>7!AQQKK">4'OY.PF.WI/UG:CW/#Z86;><'LT1`MH.0T\I?-EA0^POO:1P
M;\\[,8Q%0\<"T/.T+),$S <at> OTPG`K*+4D_MF%WNU&F4W4J::EIKHF!3P2&JKG
MX+XKP6FFP$YC&L7'3TCS#=NY*QJ=[L76G[M"$JX31*]17E)F\8>@K2A-TM:0
M,RZO(]#*14FZ16"L:!`)\W)H,`T*JCR35G+@/)/&WS_3*W]ZB8)41:2D!.FH
M!.@):J0`W][8))6+#DD`G^N/2,,H5#+2JD89CF <at> H%@\ELW<1Y"#0V"62G'+G
MG1N@?LVDQ0"T9MBDB$8?J+JX]-KKLKP_O(.^*A[V;W6=VW#G;O_F6]WE^A?8
M:&W^^&G`T"&9 <at> IL&I[%I6'!BO`;\GA>^%MUU>MD"N$&HH]]'@<J"6&[`42!S
MMG!W]'SFB[QM_NN>XUO_:AEOQ5B-_TTDLQQ;(X4F6F0BHNE]PA[=/HX'_KW!
M.EB@"LTNMPQ<H`K<5/"FP<BB6=71ERC1UU;?]HIM(]E$7\X:W<8DE#$LI.*$
MH^TP6W/$[PY\I?PL*RH-UG=E\5GZL0(HD`A+"20V0:=:8_08[*4D-0X7>D->
MBPT#R?V]:!-J_44DJ\BA!)ZJ0X2`'8U6B"("KHU4J0,T_L@]E2H[OQ][WTY,
M[RGOFR06S',CM;%9&M=D0$8_2"/\E_W%W>O6,\BCF>,YK<U8^C:L]1.H)*AE
M5;.)MAA9G8U,-983?KU]FBT*"C8.Q9 <at> 7UIN!69R:-^J@\-,*OF-;MC%8ASBL
MUM92V(269H+T556;O8`/RD`A^>CD*3MGON7?"_C.C30Y7L:#\M2FG4_)>Y <at> 0
MP68TH>!B8-<X<(VQ<^,ZN&)&W6HN?6N?O2O>8VFH16U5QVJQT&W>LOF.6LOU
M^W97[MNFV<$Z-I+&4YF&%=V,`8)QBT$(/F>S7T>V)_B-X6>TEW.PCF4XU_;'
MZ/2%TS7AE`'WRS"-@8'4OFJ-XE?[5>WC#4!^3(HHYTIBW%%)EBDE929Y <at> L"U
MBUA5YPZ,60G"G+>MC_IN!CG:*\$K/".S5&1*4L[!@I/AP:N'IWS_MGNN7UCW
M[!NL$B+^]5`+9B?XOH2#Z\/G2+,ZDV)@8<1$Q)N08VA&!3L.-0<#0TOP]5AF
M2,J^PZ-,8DD7:&\7;4/[<".H=H8W04HQBHMQ <at> 01"*)59K!FQ48AMX=)\_[%\
M7]V_P"E6C^M\T[("R*`C7G#K($,[0T'VU[+XN%\O-]M=9X8*9TLPR\>22Q>(
M1#1!B:T-5B.P)/?C0N8(H5W;3O_^(NR>-,J-J`X-TB<F`@2 <at> AE!,-A!C5`U(
M-"N78)/Z2\4K_Y5O#OFJ89GJ</<HZW&@3R\M?_'+`459H/%."FR]N8:"UE.9
M5 <at> 23]I+.D0#P(MH&#"/X!W!!<H09/B7;V%\(()R <at> CG""CD*P7:0<_&D95O*!
M;)I;*(VS6['>+G\49QAM\(40%B/,W,)B <at> F"85AN3<39']J-/J!1=X?8:-3R;
MPBOJ&*XKI4;1STO7O//D`OK!,ED-B@,]7[QVG7B<PT6Q&;BQ,_9EN:+LYU5^
MV`\KM8\VPQ!YE!,8C-`.F]9+/>F,*@.O&P&=!'@9:>Q7#XK`63[RU?<A38ZW
MPTP[3EP(!)^"J2(EQ[R6X9E.8]E=)\I^>]@]#]GD:#.(32BKPZB2J7`F`0L(
M_#-CP8CCJ9%F4%3N7HJRZ7/`YX8*O><PB`CA``%"0ZG5X;%9FQHKL)UQKDZ/
MJM>E^'S/-VVKR]$JZ/@:'.RA;O!Z]RIC##,&2FAL=)%V;D2(_/U]]=7F?7N+
MD/.C>',N3!=+]SP_%8(@Y!^KO/TT0/=5XW:-\U!U!S;%@;UE>,X$[!M;1S48
MMZ-M@.,'-\IBW[+3F:G1':I9>T7^<O_']@E>:Q.</-V*!C:NE0$=:Q"Y(3RI
M$-&.9AHIAHWM$W?*N <at> A=$P();G8ZL0JO]5%<"]A),!2P_X\*.++(S&1@#IOM
M8K-:Y.6BV+20PV?V8A-(_%K;P`T\T-"$,9"3-M/3HV)>I=Y^N<;"LP;^H;^*
M[B,FR9(A+<$,V!8<[+6?@Q_3GY.'_V*PO <at> E+)"FC<8YE:!FM4Y4W&IR'70'G
M?C^T=M;)3E!CK6PPA:0)4[?-X4#E"C`WX%=/I6[?RO)]@:^R>%EBA*O,J^S'
MKR/[=_#I=79^TEKJJ7";HX.)8='L\,%3VFQA:P,_?[_<;KQ[3K^QNM^T_ <at> PV
M++C#G <at> OUO)L#*J*I <at> 0^OKO%;)&0_W(*EN?EKL7]\KHK'=MOG8K]_>&X\JVYU
M]]P1(7]Z <at> K-?URM*NUB$&LM]7J6)T03][S2N9OW6W4N/,R;9E8+):P?47%&!
M%L/D*"(^+QTO=1JXVV::`;L1ZK8EE&%,$\1VG</+'B=6+0;AE\S+YQ:6\-QF
M$*J`Y;4MRD4HT&E''VFT(9E,XH=ZDZ=\0\=D@<^M=WYF+VS*ENOVPX=8XEA)
M$%0K.1ZN!_.\YSN0,/"7]T?L<[(=%L=P&6OPL4)3U <at> V-+*8QJ6>G?V(:?>SR
M]_<NE7UF+X <at> ZPC4!XD,L=13.&\F\O)>4Q%FO%E671$>:P4Z0/4J4RZB12`W-
M$%()I/W/)@O*WZ_-XF.[^SZ\6*?[@=%A=[/@(9)$G(/62I7C#R/2<8G(Z580
M]X@&GYN2T.AQ0QHCK4+2S.'C7B%-C2[6(TQO(PPW3[N8.F>C8*E7;Q6U4I)4
MA*G1`3_KT'']&5EZKCB)LWQ1<%A-5,;25'Y48=/=[O.S/F7W.%>-?7=.02A.
MA9%)KG_5,-S$:'[<6.'K1MR-VJ`W1V<8PMV"RY39V6`%6Y#H>DI <at> W<=:A7-[
MTW(&6]%Q5'L-AV,""G*BA`')Z34D)HJ?5BM7%E9_AG=,<J[J:`\\L3B'!J$5
M&&98%$OB\)VVRSTM<49Z5_S=6\4&.]5Y/+5)N4%**T3&U-QHBPF]8<F;5@-+
M@^86=%31',<&,3UWV49'%?Q9QX9H?R?(SN*RN4V"1Y%#$%T-)DM9)E^+V^!"
M^=HQ4^JH$.4"M'KSZ9>*8PCP1:W)1.VAA*F1W[8?F]4V?]D__F]]__F#>A"/
M_X!7G[BWUCC,=3L]:$U+&<S)@K]O;1+Y6H,XUJ'5/^/L+MI`]09"%[8GU(PA
MQ#8SR2#&SPWBP\;@SK3HK6(3]#K-S.:.3(9)HT`ZI';B/>X3CE%OB-=[CB2=
MU=*Y*6+40YV`@,92U#;4S!$%P6^P>]MNP:#=%44)WZJW=5A6?^??W]\?_CK4
MD(N]9U^()*E-XPB,"J!K-`'2 <at> QL,S)L.)NG'U\/V4)<$]9[#K54KE7)I67"Z
M1W'"+I^85]-=<8;C+&6`#1S/8`(.RS<OO!T6]+6L3=FC96P;H]/4"5T;CB5U
MQ(*=DF:XT'D2/M?T>/R_"MFH`:%_VY9[^+\OCDZW8K&+:FN.)_.R>0:.*";+
MC/*X?<O]]GZ5E\O-/8TFY>JC>'K\^/B`+WR4V]H*QE_[L\5<.5KY(ZY0QET#
M(CQ$7DR)B-LXR6`N-/939V"ZV*+D9[!__4FA!5:U"Z]!U)$(;TXDA5;CG8?<
M/^,)M#+/SP7 <at> E40&]6QT!)QQ&S<&!B\/Y>,?^5]Y+2,6Q6=>%Y+5KW7T*V$%
M0E'P?>U1-3&2$Q"@L\73'5W <at> H[WJO>>`B\ZUJNU]32V/"YO#^;$<5V56)@77
M;TX=R.*<JS,XFV<XO$]87R8W%"'>L.[B]JJW-.DB'*=9*SZ$T8R17H9+#<Z@
M21'&N(AE!%H=38.W8IV[CY;9CY?^_"X5):[M1$H5../8401<#D4$Q7[K%+#-
M/QH <at> TE <at> D4I<>C/3?JTDR5H!?F <at> PJ;HSW4U2Q2.4,F1[R3`#W"^`8(1!F-UG8
M?U?`>19"DZ['X'@C-JUD+NJTF\U=8!$&(B'37J/&TAAXQ6ZW/9:3_9VPR7+*
MV0`@TJ,8Q3+L=DS4D.6'^%;#Q/;TQ9$Z<1APIUO>2'#<^5"4C,[V",.!Z\D<
M <at> CU!U&L,=AI>Z@\\'FX$3?(";1GM*V!GEU0<;"D?'S).X'S_HSIC_1%1>LN<
M/16;FX<S*D.EA;?]<X"Z2M,F#<RM,057BB.GGTG:4 <at> NL##159+J,P8_:X(CC
M!]?%I`-1M;OC4:;1RO2:@C!MAU(I6D80MW8F"1>[3<D(AN*`:Y8&TG@,U_EU
M62Y?-]M='=<^7 <at> 9S"[MLE%PUQJA0",<^]\"'2DNLX;?!*$BC)`;KH/)&9D\&
MYX19I9QBU3#U`KI*HR]K$^),POW,%X(L,:5<YDW*2),=;&>%2'4_!]"P;!$@
MRQNQ'RV]#"HR <at> 4R1!EQ\"Q\)E(L+W0#K!/<(CT8ES[.F9[Q&9(H)BG5P*F(B
MQ<-J^YROCA+0ZG&/T/EM6:M+;FP/9=6I6'/!T2JVQDWIX3R.Z7E!2:8LCE9.
M-WBO)E`@.X!3,.CV.A/!\W\[OKR"(!6JA4*?.&5<"8U%_K[LGA[>:H3/X<;=
M6[[_7JQ6P<8IL]>:/R=@&LMJ?R5%O:!CFI9JH7QCZ(FG,A+[[5Z,+W=8R;0"
MP1F;WO`I*/A'OGG]^_-VTU85##?"1Y<9-[?,Q'55R`S,#L)!CJ:3$8=E:#D;
M/SLZ^^)K/D]TOY>/.*,5CGF=[_$OBW]\`E%T>+^G^>:%XD1.>T\,_/>X.KP4
MZWS3`_`[V;GSAJ$#&[F9/RNLC8L"R^IP%/-#LZ2RK[V8#9P-AT<?P*9\A+^?
MHGE6&(=;!F?V*5NZWCXK$;>.5=U]<YBBUXCX43RA+GP``?)M^=J,A#R[ZSW6
M3;H!1_ <at> 0R6G4&HR<ZEE&C <at> 0QVA]_'HK=%WO\?7?8E/C[-#0;;OB22U_M5+A&
M+)P:J#CB1/ZK$<OQ$79ZW;OH,QICAW*)!3YE7A[V#?F.5M[E<>SRS):KE#,2
M;F&JQJ<([5Z5-#F*])Z]>8FXP!N)B[R!*I=$&X&`C>G2]KO0*=M"GVW>B%#F
M^'=\%3K"AA.&8^>]-+H[76NIA_JW\BSZ7>@9.Q_"^Y <at> 6SPG6FV^Y0MRO4X/`
ME(U#<[R,=6>H=1"K"=T964TYECR3,D%@[49W1M!)N,:75X``.*5(*S]><8?[
MMMMNRF+SXJ*`H;4Z9!)+?O!+^!]96KP>7$0BR`7]4H-U<UG.;T=?F <at> YVEE'M
M`PH3>6^DU<94)0$_6[L.Z5P5+C;4[2^B:9I>"BDNN259E0V?D9HIO"IF:K.M
MA_)[HT^E+':Z <at> J2>HQYM_?7^5<7V[ZO8/GR7\O'YK0`[]WF5[_?`3`T&YJ_G
MMV,G22MN6*QAIRW%P>M*):]'S=<XW2;?U?F/ZB>T-7HG.P%EJ3=Z218'6[$9
M!C,-BW&P'!G,G_7CZW;[NBH>P1FJBW+J+^>;?/7UH]B!:_G7^O&W__CGWW__
M[^:Z':VBKQN?"G._)B4"_UG&L<)UKO1\TPN"[$.;N=_]A>\4)=D,^61Q+J/*
M&.722$^4N"G9Z/GS\Q'.LORVA"\V#P_/-3[@8'WW_+>_=?3PQ`CDRK389UK&
MQ8(5MO=J;3)+DN;CNV[/]6%5+AT\(M:[@6.Q*9ZKP2;-R.[A3FR^35!^-G<P
MG98'\B$:A\CX+!&)T7F%"S#/Z>.R&UMX8]*:,=?6)_7T,\];VDG&")=8/#0C
M[1K1]&WYN?BVW2W:F]C,%3V_'XUKXM*>X\F:*0AIK*2(VSL'$XXT3AZ6<*\W
M^ZYU<K`16Y0EFN)O>$A'026UJ6IQ?DJQ"6N+3=B-Z`<NGDA'VX`FH)4V#+SK
M[*?J4[3/=Z <at> B%OF^?*CMBS-[@<B[V7Y=[%Z+G <at> 9A-?-I%I<843@,2%*2V32]
M!U?(!4;L>KN99%RV8K>TUVF<I0[.L$HSZ\*/#-]_+-]KO,?6##O=BK+$#+L-
MH;LJFC<(>):BN]27/E6?,9ID_XE?^9^JXNF?)7S#M;M@(_L1\-;ZJHMSC6`,
M^U9$&K.UGQD([L7UF8PQ?`E^L4T<F4*UE9E4$>-LJPE(!6O^=Z^T?8IXB53Q
M`;Q*X#L4I`)MUBD&`+EW".<+;C7UC=`C)7W?''A91MT0E;ZN"/>-3#O9B1)I
MU!@'Q0E6)8_#*`6IC_U4!HL2_R6,A?W04MA',[]U+:@FLD53X]PK <at> 6.>U3R@
M)\<88,^\*?=NG\)FGYEF]EDL:V"A*L<;,>?Q1QWGQ?[P]+AL6TF6-[:2*!<P
MIZ/(&S?;X2`WX7(QGGG-O+B%@%CXMMX4^V7NXGE-6V]O$39&T56VD3A\RPKE
M1E*9"3WY0*1+`VWR90>/W5^$G%UR[DK`=5=K%=`8`6?7P%PLDUZ-ZU-VC1SU
MZ<:VZ'+CIN8)RV-Z*W5FM,96,Z=)9Y<;*"Z_6L%YV_2XQ(TA.K-4$X4XT7--
M6*P&3*Z+_1YK]=L>J^-U"+M8PFHB&:UBX$R!!-P(8C/EU9DXM99='X!MMIMN
MX.IP(TSG2I>%Q7D<<8+3:EU5QI <at> Y`EW#0"'''?@1;8CP>!G?OGMY=M3-]\AD
M0H#UCB[G3^"A)HZZ*#[+77X27CW>CNY,:G`3DIDK)C.*<H[()C^IH:_7T7=C
M=H03!T,W.J-@`G)1!BJ>9A7/)9C\Z=(@H>5KQ!=J;)AN\7.4#>9I#9AVDD96
M-XXZ@>^[HBR_%N^[Y:87`#R[&^<P4P>I8"(AB0P\*\UT-1UX7M-N^UZ^Y[MN
M?/Q@'=;YR[6;^B)I#%85D$%9(Q%[;@XE=35COZC*N@=I^_YF7,38S8M <at> 1L8!
MMN',=&:ER6912CZAE57Q.0RNN*V(\(H0\J2Y/I`^0A/.+%`Z0>;%"=&&#,%%
MP+X5LJ-T]Q6GPL)]5'7OTD081<_UQ,LJ:Y!O7A;80+)O@(G.;88#3'#B+%UX
MB'S[4G#,NRFODJ>YPDMY%U_*;W0>57T];$*#35HMC<U$BM82#V>ARN(VYFY_
M$6NUN0Y3-MIK,P'-E.;,F"K,,[,*W[WLB[+UN8^700J\26$A]'^4_E96&5B(
M65#4!E#4OQ7KK<,@W#_^7FR*75YNV]J>X4:LNR1I<I=3:V[!D*0SU94=$1&G
M"J`HJ^79TU>)L9NO-N9[M!--0JY.E&`"GY/+JB&()KB.C2-5R:O@;G>'FL_)
M%0M@*!=]%3_8E988!/".T_QG(I_+W?-AE>\6"(K?,L39W9LFW*<K\\(J5\*L
MP+J>GV(5O!S6ZR^T"=Q355CO"'FR$XUBYF;^6ILP.F$%JY(1R9-/5:+]I2C3
MC-H.D$#7Z^QQ:("RF)9*71KG<'*>EIO'K_R]GL+>/$3762:?OV<1B4)2;$=(
M <at> GAVW2C?_)6OEB\+9YRWQOC9[6C%Y <at> C)>+K[9Q%"@'"=F12AHLT-,$^,^P<(
M*YLC",_)9IQ2#CX)DWYU-.XH[=T(*>3R+0/";^[_^RMF!/'N43__PYSPV[F>
MM>/E'7SZ&?I7[OO_4W=MVXW;2O97N#(/F1=9Q!UXS'1G,EDGMSG)K'G4HF5:
M9EH7'Y%J=^?KIXH$*4K4!8`$.O-@FP!E2=C$I5"HVOM:4P3RS<E$Q&`:.]WN
M#__UW2\_?/_3KS_4S3XH?3M_R=:+?.)\L$CXM?:7+YNW2;7-BB4VY>VE@(GD
M-9NW;,C7!K$3:;)!X=A4Z,03P.3?X55+>-5RMUK#;<4C>"U4-T&J>]AU45<6
MJ2 <at> J\KD1T$;@TKRKMKP]C".H3NJ_`0<P#.#`DEJT9_2\&A <at> MU0Q:6F7+3RT:
M)^I<\1B$Y-O`,Q-VR&)@J(`1 <at> H1%L7,A:ZOUY^Q3CF]=P]`O@,W:%"8+O+K+
MC!TX!2G-T%\3)46A#<,%+'RWR$.:I7-QN`BTZP*L&5*$)2S4(UY_6,VUU46"
MS7W[]#U67PR(24G"TK$GO*8X.X!@4.6%A.AH4:7<QTMZS7 <at> FI52E"95C[NM_
M^O'#][_\_GT-0>_:GRP@;7-KH$E!TYI.X4TX4HK%H'2\W!V62*?0]81^R2LN
MD+?^0&*H#(@,U!A*K#4#>_1]`DQ.^7;HT+ES8X(?M;+HL3S/`*,QJO;LN,!X
M9RI_T;F9Q3TLSH@@$<XP"H^^8\9MMEW8(`U[1G9<$2`#D1IV$;FKL!CT2\"F
MYCWB"QM88,998!+;;%;`5#2;[8\0CRK\4R!;I1#)2%#6`P!$,;`!_1=17(07
MM+5KL?6G;?%YG^E^4`I-=#@F=+PKOP("I@`QF1`5)7_V&F"U('WQ5^>D/RJ'
MSDZLS2N&%9^86-`Q`@85[G1&MPD:>_#+-G\^,A%[57YGTD38D:?3@+0)!$-)
MU$XD)MXF9[[TY9!4SKF&EP)QG+8^``$8EYRRI$X&\.3']'6>FH'BM4>[.A$T
MC^18;![\ICK1H:[5$_:([`)V]I>AAIL-:8(.")OR*#8)5PK,_\2,PL%\S7DH
M.^>A_'L[#P$X00F#@4%B1`HZ=;-]+[LQ*LS$U1?1&%!'\.")LW?"2NR'I+AQ
M2+8D?2X\\:%H&3`:L8-%W$M]W+RMEQN,=[)PS6I1`I).4C:A9$+H0[5HU.&N
MO>#;*MLZFL+Z<@3496`(V'-4U62M#G;P>C-IV(?+8K.^,8 <at> 5C(X*EIEJL\T6
M8,5AJ49F4!.P>6H3PL-<.`3CWHVIJ8C>0Z.YOIRT.+3\CR=K/3@@"6EWE(J?
M)0^]!@Q#7F^9T#MGPCCK5N,Y#GY*MI[4'"FP:>H$V\_>\@!)<&.)-%)Y-FC@
M&D@\Y<A@)>,H^;KUGMVVF)2O^?RH^QQ7NT-#E<W_Q(M08(0D3"<\1J)$&RK1
MS1HQ(B6&\Y>;24PP=%O!#E`1+T9\?*"^C>'V,3'FT9BZY[BV16AJ8"F5Y`ZI
M#+TNBPQ01]VU7^6C2F\W/3!]AXYA20U!0S2.-J;;;#?9?,9-6/[6H7*FWF."
M8\9*5LF>,+<O-H92SI-11'C.])7Y9O6:5<7CLKF$C]Z61WWGTDL\^E)JK <at> 5'
M7X-+,527:0.-W@>O04\Z7>V."S3FFGS$-5R@`TJ-<?4N1I9_6FT89YBKPIV/
M0Z06K(()I3W7]WNJRSS;KJL\F_ZR@<U7_?"ZJP#3N*6Z8&',!=@8)='UITP\
MOK<SPFZ>3Y-H>E(6&!_G*G\JLBFT\1/M@]U\<'E66<[M <at> 5-8-Q <at> 3NE%6=E_N
MVT?M;;^T2[Z\T&N[?N3:!C#RD>J#^YDL#63;\NMZCL"Q"8%M;>K[Y*R+;F#"
MN#VV539_W&P^<?P"JOX"%'^G9L+3Z<>F#=/37]09'6'`$!:)YF[2MZ?1$9,4
MOIE\/W0DMIH"1FI"-52<0\=^46=TD&N5ZEK^YV83<9M#URWS:?;ZFJ\7Q3J?
MXME%.;6*+C;=]:`4,"^*5M<EC#,`PQTXDS11HZ2)]?')OV2K5Y2,>\S^RI=V
MP:^WP"W=_[#*E?2?TI;&F)NP]8+A/(*'7T*/;?^\Y8^U9'&'4)NR<E0.3EI1
M2C0Q('AQC\050(NA490ZYLK?[F*Q$>O+;+VP(^@PK6=P(SS#1YE61O7L$/,%
MBW.#@49F='Z*=DZ*(IS*=+-]Y>1NO4I <at> D(R&R6ETH'9E-9UGV\5F8H.36ZG&
M;4^J<1MFS3)IG1U,RM#923+!*1Y9CNWJ76RF.+AVR,?62&MA$ED-AUW2>M<!
MD8Q6K9Q0%J1'`M`HHO!(AL?7/1HD(66/9;7-YE5[PG14#@V1$:0-DM'\7(>Y
M^:P)@#.8_)"P48X/RK?B=8DRL;#V8WE33J&,GU4^6&:E <at> V(`!0RZ^ZUY),,<
M:BS1AC+HB22Z%7#F$"X%"U=.4CD19P[A3KS`_1!.2LM#%L2CJCGZQ(TP8&\Y
MP'/K*5PMPE;_JK7&GMI0Q<:.'E0%#+;C5!&BE8VRBC7H.&HX$U36TF.P,`TY
M4N:;Y;*12BH=`AX#-45$=!2%`$L_?2>F&1LVVL;]?44YR@[#PV(H <at> MQRWI)8
M&D"`H82U%Z6QR1C3_WE%Q;=LNX;/&D <at> J#NK][:[4-"?LC(NP0P0`21F)_*=J
MC(YV"J3GXDNUV\*V>;V!+P?;000@?^KZV^EJ?ZQLI+(*6SAYHF`^0SLU.I,!
M_`N&C^([3_-J/K77#T]3N-.Z$O:7KBX$0HBE$*,A/-.(@-$H3J:BZP8^V";7
M+>T77-MJ[`1MSDXOU]JJJ>#(N!CCW-'Z($,%LZGQ%\P&#)]V]:KH*YF-6`A-
MD3;0T8GN^S6ZJUFQPI`:P/";`WP.Z_VY\\#LK5\C1-CF%#5U8)8$FR;&)&E[
MP\([6F*HL.064>SVV`5N70U+3,.4[LS]9,.PO8^(`AO3A7V[MHH3G/Y,J%[0
M9<_!8;'U'YRL#?`DI%UX9MABCP+"=2Z2DYON7F%C0Y3N(;X&T_-%$_QJYP;[
M&M4-682UK#U%/&BU;ZZW/GMDZH6U\V#7,-I1E.G6*=Y!NOX>S]_:O6%:XM!>
M2C6%&9V-HBYW$9U=,45JV!FT;(>G1[OM,HH[F]U70QLP9"F1"J#4T3+WBO5\
MN0.TU@`:_$#9RE6U%R$R53#PFZD#$\0##&%HN#12PAZ=QS,.;<M];0)RUC3L
MP^DZ*8A4(41,N9D`AQ_R1<N9Y)-EL=Y]F2S6NRE`,BTW\T]YJT[:+X2([:6Z
M54()V<]`\[A,M4K&X.L[9JUNLKF>OQ;X<\"G?E0.(]X_H;GH.3]*IN!OHD?Q
MXIU1WT1'0>TG**ML6\V05VAF[;UV&WSVCO/!NF'76/ZN0F5@@R3AS]AAYCVH
M8'*<S9<%K)\S1*WM3*>KP_I4RBT)LCK'1GH-*`73)A)ECGWV"591P]U;#[HZ
M:&6659M5\1>\^+#8FNPG:_V-%*)NLU(U-1JL,DK&[EJ++B/(HE83=\V <at> Z=LB
M/RJUF)VJ](;,D$&>K.\>!WHJRJ6,$[?1P;6KBB4.P_[?%IG#HC<F6@^B87TQ
M,10F.N18?H_09QOFTY@"7>3SR5KWP&>NU6VHR(3#9I <at> D<I3DX)/Q4/4YP`P`
M^%2V"]JPRG4E@[GB1CQ <at> 7@:3*!$Q%,FM6=NMU-X;8LH#/42]J;_WZ8XV,(;%
MPSX!^DI#H^C:SGK]\*4^&$;R.[3P7%2F:_LHD00+CB'Q-S]'EMY"\-`1(80\
M2B1.D29APBL8'+Z*=U?URUZX$*'EVC26:L90`M7+6=OG)_!NHRL7X15:!.<6
M<HHL:$:Y>JCPZ.PI?\YVRVJZV.YJ/8)OVHMOYYOU<SUUN?I>6Y^!T?WV.L^M
M3*DZ4'(4T<V]<^E^KK8P$U;6`36<U^S<XU+N[!;;[/6EDW\Y+'I1[7!!CRCF
MO!X]%_#D52+C\%)>#8B!]^[.TGO7P41-AE[L#S?';:`!`EOJ%#YJ#.K*IWFU
MF'[,GS$P*/^PS'9E_L<V6Y?+#(\I?]AFJU6V+?\`*+9%MFQ=LK[_$.ZU5<VN
M6SH%RESWVDJP=U.1JH0Y;<-O8S.L0TCO2%'^-^`G!P`53&5(9!(0&G`S23D*
MSW_^W,YIW947KZBPU`I,G-6VO0H!=")N$J)B^R7V0:3%>KYE[?#K%VXX$%%[
MDMD[#2[-*(/!)>Z=2SL<7$O814[>WM[@QENUF?Z^>UP5U6]9-7_I=M <at> GZMSW
MUY+9>1ZY^,-ZB4FE)&8$U5(<%1A:-EEC0F[7_F&51UZU=0OKLUQ(5UO/ZL1$
MY31-W(,UMJ6;1T.;M?Z$?L'9)RXOA[=>;;G&..-$1M>TP>?^`OO?-;3@=?EU
MTL:/IZ+K`Y=O>Q`VT&-:3R]08+WE4H!IHV+R7AVG(2#].(8"("=BHU\WFR^*
M=O4X*GN9Q,H>!M!4A9W`*]3KI`;I;&*R3_JJT.'27K^&JXM)W)>1=MO3*E1]
M0O&G.G4Y).KBRK.&!SK/R_+@>1_6^3QS3JV*-4L#V5R <at> P0HY^A,QBF5_'IV_
MO7`:0`5VA*9@:>DQ=HU7.A)JA]8'&/V>=%3ITY5HRF[SW0,\6F#JF*3O"\\'
M%##YJ2BKO=4QK/)896Y$A>&IO8#Q%3M">V^7_]:X$=B#?."U3&J;-K+-G[-Y
M3VGVJ!R:.&)B9S"IA&N!X3W$)0<L8M\ZFK[#9VY8K2T!2VC:(.QHP)(G.I::
MAG,NS>,&WOPXD>:PTMN_"6UJ3LY@/QAJS$B"9'H)'R73M(9GNUMCBSO)QJ-R
MJ'M/\P$'W_T'&*9I4HU'3^^=<Y1M%WOO:+_@'Y"<MH1.84X5E2A:GW`H)U+/
MNZ#2<-QM=MMY/L4#D6+1J.VV,HHGZCRU%(D*8W$!-!043#)*Y,L^$=>VN$Z[
M[5:N4Y6!XXOS-F./GD7F#@-,4Z2_270Z+GKVN*V;DX[*H3SQ;'#R?W_$3(I<
M\8GF8\0[]OH;+F"]GG90#)W#TY9X^6Q2Z#T`4RE+22)&85.L/7E$6.`P.M8"
MUKL.1(M))BV-ET!^\DB`:4RGTIAH2\8"+`I:FMG <at> AG@<\1J341A)$R7'B!1M
M^U9_,816%TCJ,'LI,`SR:[<BGKOAO"QR87E?N0H4MM.8T)@2#-F)EWY <at> 08F6
MDMB"[N8I <at> R8;C)Q(-'$3N;XP'AYWQ?*I'1#]0O#JU%*5H^L[VI!@4K%4@/T0
M+P/U85'X*I*V;'WP]\H#S\'<_I1-Z.L4/\;YN7--A48M8QWVW/<?:Z_J:-/I
MQPW<6F7KAX;[:G_I<3ZF9;.GEBK0QM5)'>=`$SZ*RLH9*/[V<KR`$VIK8/CR
M&,O!&9B^KPO_#SS'.E$ITOO'HDR_R&T*WQ,S<HJ,3NI[>$"'`3:3S7;2P/GP
M#'V <at> V1R<K@])LK`G<T2&'<YAFA,G7,!^:8P>5D<<_3EYS3!8%[K0SQ_['6I?
M"NY0AMB8(1=J-9<>9;06-<NCBUO9GR'<8N&;(>T<@7H`N-O*8Q(!.QN>J$8B
M(]0YCI_\``.BZ_!MP9G1C)+;,OD,&BB"<&0+C\MH-FSU <at> Z5W.RH[M]VFO802
M)YJ$4T(-'K..(*E4=[+YJES-_Q5EE9#-,D'I7<:TP=Q>3I6;?^V6>(0:ESCY
M[.VT[[(3=8)$(5TV%&)%*C?$HDUS[89\7_CV-=^ZKGC<1H6&!"1C0!9C!GF<
MXN7YX%/WI8!1KNDO=9=RG<<5)<@"19IPUZ!HR_9D=W_IODU@.E7M%BF,?<@@
MO;40"M[J[OKC7L9<F:T>LTG-2SG]5%3SEWQ=*[KLX%_ <at> XK4.L$IK <at> OH4=U@[
M-.+*)%L_);_G%6J"E=/?FJ7"DMN7V>=\\K4K[A[GD^HE+XMR^N=N3?A\6KW@
M#KTJND=P7.$A(,/U)5WFB\\`B1 <at> 540IJO(;,TZ8<]RG8?T&U@$=,"KOQ*;S^
MV[Q9S;\Y&-/>!ZP\/9D0Y0P^1>(YGOBI-CN"?S5_`GE\L^IESW_9*X3R']NT
M<"EB^9L-ZAQQ@[*D8YQ(YT_S2(M\2UKH<I)Q=8T'5`1N%RD&RHS.I=TD+F;K
M;/GUKQP#\?[,YY6].=ONUNO].="IRM`31R,'3%+W[VS"I&!D)VJ4'*=CIFTH
M?%X5>Y+MKA!`*J,T$_IBC[L&A>*""Y/4<7OO`44C+]*!T2N&<.Q0-11E]`1$
M"^@5JF8/'1>0#S]_]X]N/NH7PEUUTLB[3D>&"H'RABK*='0B._*G'S]\_\OO
MW]>0]*X#DT)#%W28DZ1BB8@^"]>9(6LP9K(Z!(@\P!ZK"V'M2MZM%](NX&E0
ML(\AT).X-*J1P8ZV_W[8/#W.'XIU8[@<E#P3H&^9$J&Q!C69H'!G_V&3Y(W-
M*M9EU37TN,(WV?N&KDT22J5&Q:U1!$M/!H]B\Z=/^6HS?=MLG]9YU4:0'A:]
M(DA%EPW&0WL\H[7#2<D()D)[:EV/=%\_LCB1W'WD=>A-(TY^!V <at> N)X)H))CT
MX<[#R1KFI&Q=I[%/6[W4B7H@#[Q^XI_9#,#*%_FZF\J&5?X[-,'-2>^+\]/E
M\$>AE_G.V6[K4!(.ELJS_B0WJ%V?-)@W)*6)=O8PN7T\P`6;A'R65=6V>-QA
M%F/[Q,_?\G[RL`PUQRAJOQ?U>O""4XXZ:5%">4\@U>S+)^R!/[".:_)?R_G#
MBP6G=^T?Q#LX;/'#0G/<7`H5P?2W`R&,%Y3+L\KJKA"[C@;)M90H3NO&E^3^
M!>#^S`Z3[EF?J/-GG$MO>^B*"$,H6/)1%GP?=!Z+JCR`IE_ACXNZS1!2`F4#
M6NG1]\(E*TMH5(?*8=%_UR,(&["L^:%BN%9(!G-W7_[)H]@_LP8 <at> BF^.0?Y/
MEHBIL68.MD-'=2&:UE8O\2R=PC5T,'.<@C'A<F![WWWA8YZM>AO#MGC[OM@+
M`1 <at> NDA"%P0=Q3ZQ[[7_-MZN]:7%0\F]]8TH+'42:8%"O6S%-'&.7X <at> P/F$-F
MJZ*<=Y`<5_C;6#?0*0`F5"A&9!N*,DI2YRE<,OAWR[@W>R[6V;(#Z.P=?[^*
M53T([3Z,$B/``&/QHF01"T_K2]J0>2/VF^<3F\S+\+O97P"!XEJHEIW(M57-
MY_F&>Y.S/(='R[/KE^=$HLW@:CS:+^]/\T`$]3&(G;^^H1(5$)D;E^;E&;D]
M"NH50G.F96.SB+.IB3>?`,&8DZG&X!FG?*`X,W<S!;']-OFP[#]OZYNXJ`$4
MF:*+>X0\/!=@^!$P/'R9;Q,]\"(4&B6)HI&"K3R1$4?(B'!D;NPPBAA.1<+\
M0ATBP4*/8*'A_L7;]"@0&$FY!,,X>LKX%2,(/]#:.GO[YT2EO^ES&WTW0&2(
M%@*ES6(?//>6JKMFCS!MX];/;1]#TD<0&`F3,`>K,.:FH@=*$_K2BX()ZA#J
MMO[`$KP@,8\7CQFL_\P^9S4'!;JSIXO-9K',IT_YYR;PI7F-#7_9EO6K]Q(O
MKY\6TP^;51VL]H"WFD/[XYIO\<([BH&3FS1>`$L-&XL4&1I&DPKXWU__^8_?
M?_ON0]./#DK^<TL;M1"V!64)X016IH2,PK9T18UZD:_I=-'0['9!>4?E`,=>
MTT-"`:)I$^IBHK)<-^8_>U#3+ZOEM,R^X`]R<'6[A:-RX(9!4]%T&-A,GE9(
MNWG#P#"6%DS`I";CC]ZG&LKY9?;8NZH)P5O@^H50WH6F!V&D:J1=%DLP<-](
M)%]X'\R>NY[V?"O3D-(M$TJLM&G$RRB#F1UQ <at> O$P^B1[K2QK0/FP+,KJX6GZ
MF/V5+^M"DV1^4!PUT <at> HE?Y12'";P,8+O!C,W;"2J'OM\K^!_-*O,;8&(@(4Q
M*=&))O$T7^O5R=,9I<Z[T?P8]YJET<U9Q>J=-ZJA,-^PA?TJU'[P<_$EW\X:
M,D@[.QS7!,X22E]27KC#!*%XJI!M*@:OPD5YBE<\MX$W7L^_=@Q_ <at> RHO?M;4
M!GI32@(T2M#(E:E*51R5\S-]N<J^8-:0QGR>^IV:,[A3M?XS!KOIX(7!*LL5
M0]G"NY.Y7^H7=7%65MG\4X_Z\;C.C_$_M=8M[(1Y0-?@&/A,:"+BL+$-)Y95
M5BP?-U]ZO$6]8BAU4:I,TQ_JJS <at> 3"D^$EAKVWO$"NIO4+V <at> Q8K98O9*TS;SY
MF#\6V;J??;.O"1@]EN&;L*`>8\"^TRBY-0H.5;%^WHCI?W[WWW7S[=]1;2V.
M <at> C44TS73V-;YZ?ES,'7Z)4C>.%UR^*)@:J=@:L;(D3RC>?#AUU_^^.>/__$_
M?_SXRP]=IL>P[N_!S8(824VD3+08 <at> _ETF,LXWRR7^1QUBLII]CC?,Y_NKV_;
M_`H7>H+`F94)S6#Y(G$8!\];MXU97;-_=H>RO4)H#BAO7"PHM!UK+8*YUW#I
M&)1]WV1'Z$W30Q;5>]"GDJ$(Z/W[&5>$IR;!R6PTU.8-'M.?L_GT(Z9N_/;C
MAS\>MYNW$NX5\W5SV=&$'M>$PBG-Y<2>>]A#7'$&MG3T=$CG#?*]1S)TE]@@
M2B$I48DV8[#3]H]T8)=1;:8`6[Z%?YPM-K.Z!MZ@<P1>NAG,0FZN15[<`53%
M.$=:C3BF>L"AQM.V^)SOSS0.B_ZVK"4:U2R(GA``TE00KA,5Y]1GN.#FZ^9=
MRRGLIF>Z[6#]0CA)YT7+_ <at> Z]"<8FY2(AZ1A'A$>K1KUBE)OYI[PJI]NFLM,%
M."B&XD>O':#>`4%C8$"B%VH,:V5H&\/XFM<GU=T`'-0$B`*8&]1SC4B$8BDL
MGG(,'O>A4'/%VE[4785:NZ3!09IHAV,P]J2"!3*6X3:<K_K]8]!A;EG^C+3Q
M4D02'<GU+1)*A(2")G>7I#LQM:,+;]I(*&1/3]VF8%`3&N)*B`UQ$%I%`TPJ
MU)P2T8/S<#1^S5Z?ZU]-1,TV?]YL5UD%MV>/65G,9UC?TU8Z?S<T"(`9?4VE
MZPZ@,IXRC8Z1<<;L8[%^R3O'\D$IF,RI32!G1D1R*XN$$[`N,`YI'//BA*)H
M=B`IFGEJBA)M4U"9#ET+N1(HFJ*B*TXX[R3W44='04 <at> W="<N2+/W@:G_7&SU
M'?H3&!:"L"2&Q%E[%-Z..=^LDJ&M>9R:L1_.;H?=^)MPBCX=7S:&_4=ER*I7
M;*;SS7:SJXIUWBW[_]?<M30Y3@/AO^+BPFF(]9:NL!RHX@:<4T[66Q/()"%V
MV%E^/=VV[,B)G4A*Y*'V,)9J=NQN2:U^?GTU$]U<@]J4&)DJ/B402A]6/F,I
M:M3O^`2+W6Y?%XWW>9`L,#$?ZX[)\S8.SA,>'Z4H.F14&MB#<2ZFP=>S*-I.
MHM]#(0Z!.!@JQ[+X>2J<IT7T-Y3'9T0]9Q2YLXQHKS#88>EVEA&4,@HTSY&P
M97=6TP9EV=WVS^Z00KIL4GQ(Q3@)YDP.$EZE@!NP-]J`3:&W&O-%-QY=$[][
M3F8F-XJ"#A'9)N?:*V)3/^'YN?%":2O(J)ZL%7_"GB`2MAQ6E7],N'5?+9;+
MS6Y3+Y<]ZRXG8 <at> W>Y`YR.%%,H-(T8_"P*NO3H<]E=P;1;@$+24&H3R^,2#XQ
MRK7.9^KLYD*^=3ECQ:[:@,5_?.L2QBXG <at> IIS*XO6'-DL&!EB.*B9H&W/X;8<
M8TB")#HP'-K;7T <at> 6RQ=N8#]B&&_&9/1SBN'+:77:U:>652\K4+<WZW.6NN?O
M1:#"=-Z1<;_</9XAE@,QV#CU?Q*EJ_=_E;M>G`]&$7 <at> ICU68RTSFC%$*:L\<
MD>%1M.%-[8(-=Z,(K&'*M+P-]GV/&8J"^D,0\OJ#P+W?C^67-K]@:9M)GY,,
MW)GHNBRK2*N42I/F6G*P0-0\0:<)+CZ[;VGB1!=0O<%NDR#<4P <at> J:X`@8P+M
M#D&O),QMN^-Z);QM#Y5K+"C1*L[XF/R`!L+\G$@V',:Z6>GMP.S#&T)EF%VB
M,B;GN+C<G)VOY6IQVBQ^_..77S\U#.N?P <at> N'K?HL)VOT[C&!$,YT <at> P'_@;*D
MLZ(;_KP4GS];5'P;T!B?]HUL,-:Z&]ED:ZY[/()GS=#S,Z/+YQZ3;'KA@$.#
M.6_VB,?*]N`$@2%"P;S2"?*TK&"-\^FP/-"G,\UT/QF+T <at> 1T'`09SY\L8X>K
MO]Z6V!'777QWRCOH]^#*<TX(8P <at> L.7-QWG%5'TL,Y[2FXW`89DR;%L:#$*Q#
M#C>`5":DQM9A*7;_31X45;5?]PX%9Q!"O^86:(V"`1=%OB3"4);)65)?)X_'
M[S__YI:8#(?QC5K;FV.R,5Q8Z$4A8!D%%51Z-95($CLXGG9-ZDEO^EQ.Q(9>
M.LLPSY-%]11"%E/08'W`5Q-XBT_'+3X<R[]/;?+.QN;V#,81.ES71C4.J <at> U,
M&HJ9F=BU;*Y68O6B?"_>#MNS"+X8!\K <at> FZK^7?(-%PS,XC2]K6Y(X`J#XE6]
M6?=<N)H):N+!F`4T=#R[0;+8,/R7&9*N<2@(V_)8[M:A&*M"W\T:<3C\?EB7
MB[=BM^A?YZF!:>`B5S0S+9Z&=V,26X0;$"^\[MKF0X\O%5HQREMX,'_OPR%X
M5?@X6OHM*OS703&%Y46A\!67+[3/3<.<]6M9]8?-'82<,Q"X%P5!`8=,-\4O
M$E1\G0ZE!&D-SLH:[9)P:R5=QOJN*L5L2H$E52$[LWU3J/4639$O,8R#L("!
M]),5-Q/RJ\6:=8J4W9[#<<@.59TW-!:H7</)9CDAH!-\J%J>(B7JN27?.A.Y
MY!1_I/,+UZ&'F?@Z+JPVYKOCA0`5(\<?\4+9B>%VM81]`'<P$;+C)7Q2\SO,
MT'%$NWNDR5Q09C*:HF6A7<;RK5B'YQ6-8E;@4DZTE6[>XKVBB <at> JL0*(J)J.H
MX<?+;H\-JCJ`BK%)?Y`*R5HU3T0V7 <at> 2"X&XAPK,!\"/(J-?E5-5Z?X"_G_<)
M+L-Q;"2#=RQ)91B#NBB9U`23V%)E+GP!TV;5%E%U3VW;QNI0K/W@@Q\!;]&9
MR3G(B"PIP)$CY5;[?;UHPN56NCG/89T9N;"1K"BC#@@73&`UM)C;P0B__[E-
M][9>UN$XB`LY>8@+!@4<Q9*XN6W\U[H^+/ZLL$"WY8+S'.1H%?DMI+Q[Y&,1
M()"ODU07C9#?9)+\T#9U_,X=!.&:2=I>ZB0.\0Y6'?XCR3,Y,]UX4SB4=\-9
MX:J`>"FPKY"8_>"WZ1Q;)[4C'-*.]NBQ47$%DS&2*ZG`VI[[Q*]?RW-2HCL(
M`WNTMWZLO&-:@JP#L3%W:.WS9GVV8=U!T/+G\B*?)XAX#GH,Q[C[W#N_>H6G
MWIGK#((NNX=./=><*M#H=-)VE:.T%V?*BQB_FNUBA`!J,92C7PZC8\F;SCO%
M25]_6G[:KT]-$X-%TR:D2<OMC*&KF0!+2%C+3PH^%3^\QQ&EJ8$;P,^)\X12
MK0$W3M6R+M[+:MFG(%_-1%Z(<8$>`YHPH;"WB%><ZUEXKV#L;,ON8+B#[P_E
MT1-EA-JC02@/!^L$BP?[\PB323*W/-P6_WYK5KN_$:YF`MB <at> QINZ>7/!<(/-
MNL+P*Y_`!7Q#A3`$VUXHG(=!-X/*3;16@!P <at> F&9/,Y6P@?6P/"'0VT4N(4H[
M7]=$\8./EZNAVW!A:*994-@!7A@:#[.5D%S(*0I\/QDN<43#Y%2D_60PC,<.
M%7[R/P5L:=C'(9_-3),E;4A((?YJL\.7-"F:Q_*PKS;U_FAKQT>GH_$0A<V5
;R$>/SX.>M$;2,FV4P;38J!/V'[#+5#J+:`(`
`
end
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sun, 29 Dec 2019 15:24:02 GMT) Full text and rfc822 format available.

Message #23 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sun, 29 Dec 2019 16:23:46 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes:

Hi Peter,

>> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a
>> chance to run this for test?
>
> Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode,
> using the same desktop file (and same open files) that was causing
> problems with Emacs 26.3. (Sorry I took so long to test this.)

Thanks for the feedback, the fix in Emacs 27 seems to work.

> Emacs CPU utilization is now ~30-80% (according to top(1)) instead of
> 100%; and responsiveness is good. Of course, it would be nicer if
> emacs CPU utilization were less, so that I could fully utilize that
> core (I only have 4 cores, so losing half a core is notable on large
> tests).

If I count correctly, your desktop file contains 489 buffers. Heavy load
for global-auto-revert-mode.

> Michael Albinus - you had a number of other questions ... do you still
> want them (or some of them) answered?

No, I don't believe so.

> PS: Here's the desktop file, in case that can give some clue as to
> what file or directory is causing problems. The "compilation"
> processes both input from and output into /tmp/pykythe_test -- as you
> can see, there are a couple of open files from that directory, but
> they're not being continuously updated, only once or twice per test.

auto-revert watches directories. Even if you watch only some few files
in a directory (I count 29 buffers which are bound to "/tmp"), there
will be lot of file notification events when other files in that
directory are changed. Maybe it helps to set auto-revert-use-notify to
nil for those files? You could do it via directory-local variales, as in

(dir-locals-set-class-variables 'auto-revert-with-polling
   '((nil . ((auto-revert-use-notify . nil)))))

(dir-locals-set-directory-class
   "/tmp/" 'auto-revert-with-polling)

(This is untested.)

> best,
> - peter

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sat, 04 Jan 2020 18:51:02 GMT) Full text and rfc822 format available.

Message #26 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 38644 <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sat, 4 Jan 2020 10:50:16 -0800
[Message part 1 (text/plain, inline)]
A few small comments/questions inline ...

On Sun, 29 Dec 2019 at 07:23, Michael Albinus <michael.albinus <at> gmx.de>
wrote:

> Peter Ludemann <peter.ludemann <at> gmail.com> writes:
>
> Hi Peter,
>
> >> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a
> >> chance to run this for test?
> >
> > Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode,
> > using the same desktop file (and same open files) that was causing
> > problems with Emacs 26.3. (Sorry I took so long to test this.)
>
> Thanks for the feedback, the fix in Emacs 27 seems to work.
>

Correction: Emacs 28.05, cloned from git://git.sv.gnu.org/emacs.git and
built using the instructions at
https://www.emacswiki.org/emacs/EmacsSnapshotAndDebian#toc3


> > Emacs CPU utilization is now ~30-80% (according to top(1)) instead of
> > 100%; and responsiveness is good. Of course, it would be nicer if
> > emacs CPU utilization were less, so that I could fully utilize that
> > core (I only have 4 cores, so losing half a core is notable on large
> > tests).
>
> If I count correctly, your desktop file contains 489 buffers. Heavy load
> for global-auto-revert-mode.
>

This is the result of working on a project for several months (using
emacs-daemon). For example, 94 of those files are from Python and
SWI-Prolog standard libraries, because I needed to get implementation
details ("use the source, Luke"); and I'm using pieces from about 5
packages, whose source I also need to look at.

So, it's a little sloppy, but not unreasonable, I think.


>
> > Michael Albinus - you had a number of other questions ... do you still
> > want them (or some of them) answered?
>
> No, I don't believe so.
>
> > PS: Here's the desktop file, in case that can give some clue as to
> > what file or directory is causing problems. The "compilation"
> > processes both input from and output into /tmp/pykythe_test -- as you
> > can see, there are a couple of open files from that directory, but
> > they're not being continuously updated, only once or twice per test.
>
> auto-revert watches directories. Even if you watch only some few files
> in a directory (I count 29 buffers which are bound to "/tmp"), there
> will be lot of file notification events when other files in that
> directory are changed. Maybe it helps to set auto-revert-use-notify to
> nil for those files? You could do it via directory-local variales, as in
>

If I understand you correctly, Emacs doesn't watch individual files but
instead watches the directories that those files are in ... if a file
changes, then the directory will be changed with the file is
written/closed. Is this a correct understanding? (Presumably the reason for
this is that if files /path/to/dir/A, /path/to/dir/B, /path/to/dir/C are
open in buffers, it suffices to only watch for changes to /path/to/dir; and
if /path/to/dir/D is opened, no change to the watch list is needed.)


>
> (dir-locals-set-class-variables 'auto-revert-with-polling
>    '((nil . ((auto-revert-use-notify . nil)))))
>
> (dir-locals-set-directory-class
>    "/tmp/" 'auto-revert-with-polling)
>
> (This is untested.)
>

I haven't tested this because emacs 28.05 gives me adequate performance and
I can live with turning global-auto-revert on/off when I do a big test
(turning it off makes the test run a bit faster because there's another 0.5
CPU available for the test).

Thanks again!

- peter


> > best,
> > - peter
>
> Best regards, Michael.
>
[Message part 2 (text/html, inline)]

Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sun, 05 Jan 2020 09:29:01 GMT) Full text and rfc822 format available.

Notification sent to Peter Ludemann <peter.ludemann <at> gmail.com>:
bug acknowledged by developer. (Sun, 05 Jan 2020 09:29:01 GMT) Full text and rfc822 format available.

Message #31 received at 38644-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644-done <at> debbugs.gnu.org
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sun, 05 Jan 2020 10:28:20 +0100
Version: 27.1

Peter Ludemann <peter.ludemann <at> gmail.com> writes:

Hi Peter,

> I haven't tested this because emacs 28.05 gives me adequate
> performance and I can live with turning global-auto-revert on/off when
> I do a big test (turning it off makes the test run a bit faster
> because there's another 0.5 CPU available for the test).

So it's OK for you; I'll close the bug.

> Thanks again!
>
> - peter

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sun, 05 Jan 2020 13:06:01 GMT) Full text and rfc822 format available.

Message #34 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: 38644 <at> debbugs.gnu.org
Cc: Michael Albinus <michael.albinus <at> gmx.de>,
 Peter Ludemann <peter.ludemann <at> gmail.com>
Subject: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sun, 5 Jan 2020 14:04:25 +0100
Just out of curiosity --- did you try setting auto-revert-avoid-polling?
If so, did it have any effect?





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sun, 05 Jan 2020 19:33:01 GMT) Full text and rfc822 format available.

Message #37 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: Mattias Engdegård <mattiase <at> acm.org>
Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de>
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sun, 5 Jan 2020 11:31:51 -0800
[Message part 1 (text/plain, inline)]
Mattias:

Are you asking if I've tried this:

(dir-locals-set-class-variables 'auto-revert-with-polling
   '((nil . ((auto-revert-use-notify . nil)))))

(dir-locals-set-directory-class
   "/tmp/" 'auto-revert-with-polling)

No, I haven't.

Which version of Emacs would you like me to try this with? And what result
are you expecting/hoping to see? (e.g., might it reduce the current 30-80%
CPU load for polling with emacs 28.0.50?) There are only a few open files
directly under /tmp, so would this have any effect or does it propagate
down to subdirectories?

[Also, I'd need a few more details (not being an emacs-internals person)
... should I add this to my .emacs and restart, or execute in a scratch
buffer, or ...?]

On Sun, 5 Jan 2020 at 05:05, Mattias Engdegård <mattiase <at> acm.org> wrote:

> Just out of curiosity --- did you try setting auto-revert-avoid-polling?
> If so, did it have any effect?
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Sun, 05 Jan 2020 19:58:02 GMT) Full text and rfc822 format available.

Message #40 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Mattias Engdegård <mattiase <at> acm.org>
To: Peter Ludemann <peter.ludemann <at> gmail.com>
Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de>
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Sun, 5 Jan 2020 20:57:42 +0100
5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>:

> Which version of Emacs would you like me to try this with? And what result are you expecting/hoping to see? (e.g., might it reduce the current 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open files directly under /tmp, so would this have any effect or does it propagate down to subdirectories?
> 
> [Also, I'd need a few more details (not being an emacs-internals person) ... should I add this to my .emacs and restart, or execute in a scratch buffer, or ...?]

'auto-revert-avoid-polling' is a single global customisable variable, so you would set it using

 M-x customise-variable RET auto-revert-avoid-polling RET

, then turn it on and apply the change. I believe it was introduced in Emacs 27.

The idea is to save CPU by not having to look at files periodically to see if they have changed. I have no idea if you would see any improvement at all, but it shouldn't make anything worse.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 07 Jan 2020 00:03:01 GMT) Full text and rfc822 format available.

Message #43 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: Mattias Engdegård <mattiase <at> acm.org>
Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de>
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Mon, 6 Jan 2020 16:01:22 -0800
[Message part 1 (text/plain, inline)]
If anything, auto-revert-avoid-polling makes responsiveness worse -- the
window locked up a few times on me while doing ctrl-N while running a
CPU-intensive (and possibly IO-intensive) compilation.
Although I might not have set the value correctly ... I did M-x
customise-variable RET auto-revert-avoid-polling RET then "toggle" then
"apply".
.

On Sun, 5 Jan 2020 at 11:57, Mattias Engdegård <mattiase <at> acm.org> wrote:

> 5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>:
>
> > Which version of Emacs would you like me to try this with? And what
> result are you expecting/hoping to see? (e.g., might it reduce the current
> 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open
> files directly under /tmp, so would this have any effect or does it
> propagate down to subdirectories?
> >
> > [Also, I'd need a few more details (not being an emacs-internals person)
> ... should I add this to my .emacs and restart, or execute in a scratch
> buffer, or ...?]
>
> 'auto-revert-avoid-polling' is a single global customisable variable, so
> you would set it using
>
>  M-x customise-variable RET auto-revert-avoid-polling RET
>
> , then turn it on and apply the change. I believe it was introduced in
> Emacs 27.
>
> The idea is to save CPU by not having to look at files periodically to see
> if they have changed. I have no idea if you would see any improvement at
> all, but it shouldn't make anything worse.
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38644; Package emacs. (Tue, 07 Jan 2020 00:36:02 GMT) Full text and rfc822 format available.

Message #46 received at 38644 <at> debbugs.gnu.org (full text, mbox):

From: Peter Ludemann <peter.ludemann <at> gmail.com>
To: Mattias Engdegård <mattiase <at> acm.org>
Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de>
Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode
Date: Mon, 6 Jan 2020 16:34:19 -0800
[Message part 1 (text/plain, inline)]
Correction -- the "lock-up" I observed might have been due to paging
(possibly related to emacs - I'll have to investigate later).
Toggling auto-revert-avoid-polling appeared to reduc emacs CPU usage,
according to top(1) - it's a bit difficult to tell because there seems to
be some lag in when the command takes effect and my compilation process
switches a certain amount between CPU-intensive and IO-intensive. Anyway,
CPU seemed to drop from ~60% to ~30% (please take this observation with a
large grain of salt).
I'll try more things in the future and report if anything interesting shows
up.
- peter

On Mon, 6 Jan 2020 at 16:01, Peter Ludemann <peter.ludemann <at> gmail.com>
wrote:

> If anything, auto-revert-avoid-polling makes responsiveness worse -- the
> window locked up a few times on me while doing ctrl-N while running a
> CPU-intensive (and possibly IO-intensive) compilation.
> Although I might not have set the value correctly ... I did M-x
> customise-variable RET auto-revert-avoid-polling RET then "toggle" then
> "apply".
> .
>
> On Sun, 5 Jan 2020 at 11:57, Mattias Engdegård <mattiase <at> acm.org> wrote:
>
>> 5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>:
>>
>> > Which version of Emacs would you like me to try this with? And what
>> result are you expecting/hoping to see? (e.g., might it reduce the current
>> 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open
>> files directly under /tmp, so would this have any effect or does it
>> propagate down to subdirectories?
>> >
>> > [Also, I'd need a few more details (not being an emacs-internals
>> person) ... should I add this to my .emacs and restart, or execute in a
>> scratch buffer, or ...?]
>>
>> 'auto-revert-avoid-polling' is a single global customisable variable, so
>> you would set it using
>>
>>  M-x customise-variable RET auto-revert-avoid-polling RET
>>
>> , then turn it on and apply the change. I believe it was introduced in
>> Emacs 27.
>>
>> The idea is to save CPU by not having to look at files periodically to
>> see if they have changed. I have no idea if you would see any improvement
>> at all, but it shouldn't make anything worse.
>>
>>
[Message part 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 04 Feb 2020 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 76 days ago.

Previous Next


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