[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
undo-auto--undoable-change infloop
From: |
Michael Heerdegen |
Subject: |
undo-auto--undoable-change infloop |
Date: |
Tue, 26 Jul 2022 05:54:42 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Hello,
does somebody have a guess what is happening here? After automatically
replacing thousands of matches in a buffer with my el-search, I got a
sluggish Emacs afterwards, after a short pause. Emacs consumed 100% of
one CPU. It took me hours to find something, and it seems to be
unrelated to my own code: `undo-auto--undoable-change'. It seems to
recurse very deep, or to be called extremely often. I managed to
produce a backtrace, see below. How is that recursion even possible -
what could be going on?
TIA,
Michael
The backtrace (the first cursor blink afterwards seems to initiate the
problematic behavior):
(timer-activate [t 25311 13221 560142 nil undo-auto--boundary-timer nil nil
540000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13220 972130 nil undo-auto--boundary-timer nil nil
860000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13220 562017 nil undo-auto--boundary-timer nil nil
682000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13220 175101 nil undo-auto--boundary-timer nil nil
375000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13219 728313 nil undo-auto--boundary-timer nil nil
962000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13219 407621 nil undo-auto--boundary-timer nil nil
486000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13219 71400 nil undo-auto--boundary-timer nil nil
128000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13218 786464 nil undo-auto--boundary-timer nil nil
766000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13218 551162 nil undo-auto--boundary-timer nil nil
891000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13218 258788 nil undo-auto--boundary-timer nil nil
94000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13218 89932 nil undo-auto--boundary-timer nil nil
31000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13217 955384 nil undo-auto--boundary-timer nil nil
756000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13217 847383 nil undo-auto--boundary-timer nil nil
663000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13217 765424 nil undo-auto--boundary-timer nil nil
571000 nil])
(run-at-time 10 nil undo-auto--boundary-timer)
(undo-auto--boundary-ensure-timer)
(undo-auto--undoable-change)
(timer-activate [t 25311 13207 807483 0.15 blink-cursor-timer-function nil
nil 407999 nil])
(run-at-time 0.15 0.15 blink-cursor-timer-function)
(run-with-timer 0.15 0.15 blink-cursor-timer-function)
(blink-cursor--start-timer)
(blink-cursor-start)
When I redefine `undo-auto--undoable-change' with an empty body, the
problem disappears. I could not reproduce something similar with normal
query-replace.
- undo-auto--undoable-change infloop,
Michael Heerdegen <=
- Re: undo-auto--undoable-change infloop, Eli Zaretskii, 2022/07/26
- Re: undo-auto--undoable-change infloop, Michael Heerdegen, 2022/07/26
- Re: undo-auto--undoable-change infloop, Michael Heerdegen, 2022/07/27
- Re: undo-auto--undoable-change infloop, Eli Zaretskii, 2022/07/27
- Re: undo-auto--undoable-change infloop, Michael Heerdegen, 2022/07/27
- Solved (was: undo-auto--undoable-change infloop), Michael Heerdegen, 2022/07/27
- Re: Solved (was: undo-auto--undoable-change infloop), Eli Zaretskii, 2022/07/28
- No, not solved (was: undo-auto--undoable-change infloop), Michael Heerdegen, 2022/07/28
- Re: No, not solved, Michael Heerdegen, 2022/07/28
- Re: No, not solved, Michael Heerdegen, 2022/07/29