GNU bug report logs - #66669
30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications

Previous Next

Package: emacs;

Reported by: Yuan Fu <casouri <at> gmail.com>

Date: Sat, 21 Oct 2023 19:12:02 UTC

Severity: normal

Found in version 30.0.50

Done: Yuan Fu <casouri <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Yuan Fu <casouri <at> gmail.com>
To: Bug Report Emacs <bug-gnu-emacs <at> gnu.org>
Subject: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress
 notifications
Date: Sat, 21 Oct 2023 12:10:49 -0700
[Message part 1 (text/plain, inline)]
X-Debbugs-CC: joaotavora <at> gmail.com

I use rust’s language server (rust-analyzer) with eglot. And whenever I turn eglot on for a project, Emacs freezes for a good 30 seconds, busy updating the eglot progress indicator, before I can do anything. I think the reason is that the rust language server sends a ton of progress notifications, which completely blocks Emacs before it’s done.

Setting eglot-report-progress to nil doesn’t help me, presumably because eglot still needs to process the notifications.

I wonder if we can only take a sample of the progress notifications, and ignore the majority, so that Emacs is free to respond to user input?

In the same vain, I wonder if we can instruct Emacs to filter out some messages from the server at process filter level and never call into lisp for these messages, such that some particularly noisy servers (eg, typescript-language-server) won’t slow down Emacs a perceivable amount?

I attached the events log during the start up of eglot in my rust project. As you can see, it sends a dozen notifications per second.

Yuan

[indexing-events.log (application/octet-stream, attachment)]

This bug report was last modified 1 year and 268 days ago.

Previous Next


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