Package: emacs;
Reported by: Matt Beshara <m <at> mfa.pw>
Date: Sun, 15 Aug 2021 05:01:02 UTC
Severity: normal
Tags: moreinfo
Found in version 28.0.50
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
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 50061 in the body.
You can then email your comments to 50061 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
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 05:01:02 GMT) Full text and rfc822 format available.Matt Beshara <m <at> mfa.pw>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 15 Aug 2021 05:01:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Matt Beshara <m <at> mfa.pw> To: bug-gnu-emacs <at> gnu.org Subject: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 12:46:09 +1000
From emacs -Q: 1. M-x eww RET 2. mfa.pw/brave-new-world.xml RET 3. C-x h 4. M-w 5. C-x b *scratch* RET 6. (require 'savehist) C-j 7. (setq savehist-additional-variables '(kill-ring)) C-j 8. (savehist-save) C-j At this point ‘savehist-save’ will work as intended, even with the large amount of XML in the kill ring. 9. C-x b *eww* RET 10. M-x nxml-mode RET 11. C-x h 12. M-w 13. C-x b *scratch* RET 14. (savehist-save) C-j Here is where Emacs hangs. The Emacs process’s CPU usage goes to 100%, and it starts consuming greater and greater amounts of memory. Here is the output I get from ‘bt all’ after attaching lldb to the process while it is in this state: * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x000000010b933725 Emacs`print_object(obj=0x0000000002f9a7f0, printcharfun=0x0000000000000000, escapeflag=true) at print.c:1901:37 [opt] frame #1: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa4ed93, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #2: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa4ed53, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #3: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa4f4f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #4: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa823, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #5: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa7d3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #6: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa8f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #7: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa663, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #8: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa89333, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #9: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa6a3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #10: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa443, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #11: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa70603, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #12: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaaa473, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #13: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa59273, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #14: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1ca942f63, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #15: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1ca942ef3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #16: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1ca942c43, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #17: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa12723, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #18: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa12313, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #19: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa12183, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #20: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa11653, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #21: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa181f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #22: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa18153, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #23: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa14423, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #24: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa53053, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #25: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa9b8b3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #26: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7e93, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #27: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7ac3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #28: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7aa3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #29: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab9103, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #30: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cc1e7fb3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #31: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cc1e7f83, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #32: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cc1e8ae3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #33: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cb8abd63, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #34: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cc1df053, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #35: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1ca8da613, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #36: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa5da93, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #37: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa98253, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #38: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caa9b913, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #39: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7d63, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #40: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7c13, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #41: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caab7bd3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #42: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaa74f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #43: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaa7003, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #44: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #45: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4ac14d, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #46: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caabaac3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #47: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #48: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc42d8c5, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #49: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #50: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc437135, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #51: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #52: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4933f5, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #53: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #54: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc493465, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #55: 0x000000010b9344a3 Emacs`print_object(obj=<unavailable>, printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 [opt] frame #56: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caac45e3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #57: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #58: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4371a5, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #59: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #60: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc437215, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #61: 0x000000010b9344a3 Emacs`print_object(obj=<unavailable>, printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 [opt] frame #62: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaca233, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #63: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #64: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4f93c5, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #65: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caac2063, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #66: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #67: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc42f57d, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #68: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #69: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc42f5ed, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #70: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caac70f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #71: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #72: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc49629d, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #73: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #74: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4963ed, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #75: 0x000000010b9344a3 Emacs`print_object(obj=<unavailable>, printcharfun=0x0000000000000000, escapeflag=true) at print.c:0 [opt] frame #76: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caacdc13, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #77: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #78: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4357d5, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #79: 0x000000010b9359e4 Emacs`print_vectorlike(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>, buf=<unavailable>) at print.c:1807:6 [opt] frame #80: 0x000000010b933900 Emacs`print_object(obj=0x00007fe1cc4969ed, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2218:11 [opt] frame #81: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caaccee3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #82: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1cc46f443, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #83: 0x000000010b97a9b4 Emacs`traverse_intervals(tree=0x00007fe1ca85dad8, position=2115, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:257:7 [opt] frame #84: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca85d9f8, position=2063, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #85: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca8ab780, position=2063, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #86: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca8ab4e0, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #87: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca961270, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #88: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca961030, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #89: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca960ee0, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #90: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1caa552a0, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #91: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1caa54dc0, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #92: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1caa61e30, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #93: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca8fde00, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #94: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1cabb8600, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #95: 0x000000010b97a987 Emacs`traverse_intervals(tree=0x00007fe1ca8e7b50, position=0, function=(Emacs`print_interval at print.c:2247), arg=0x0000000000000000) at intervals.c:254:7 [opt] frame #96: 0x000000010b9343f2 Emacs`print_object(obj=<unavailable>, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2063:8 [opt] frame #97: 0x000000010b933c63 Emacs`print_object(obj=0x00007fe1caac65f3, printcharfun=0x0000000000000000, escapeflag=true) at print.c:2192:8 [opt] frame #98: 0x000000010b9309e0 Emacs`print(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>) at print.c:650:3 [opt] [artificial] frame #99: 0x000000010b93073b Emacs`Fprin1(object=0x00007fe1caac65f3, printcharfun=<unavailable>) at print.c:651:3 [opt] frame #100: 0x000000010b911871 Emacs`funcall_subr(subr=0x000000010ba4a018, numargs=2, args=<unavailable>) at eval.c:3128:19 [opt] frame #101: 0x000000010b910e5f Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3051:11 [opt] frame #102: 0x000000015543b2ab savehist-b722b772-6be6c4f8.eln`F73617665686973742d7072696e7461626c65_savehist_printable_0 + 603 frame #103: 0x000000010b91187d Emacs`funcall_subr(subr=0x00007fe1cc4bb288, numargs=1, args=<unavailable>) at eval.c:3126:19 [opt] frame #104: 0x000000010b910e5f Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3051:11 [opt] frame #105: 0x000000015543a5fb savehist-b722b772-6be6c4f8.eln`F73617665686973742d73617665_savehist_save_0 + 987 frame #106: 0x000000010b90c59b Emacs`eval_sub(form=<unavailable>) at eval.c:0 [opt] frame #107: 0x000000010b90ca0d Emacs`Fprogn(body=0x0000000000000000) at eval.c:471:13 [opt] frame #108: 0x000000010b90c5b2 Emacs`eval_sub(form=<unavailable>) at eval.c:0 [opt] frame #109: 0x000000010b9103ca Emacs`Feval(form=0x00007fe1cb9a0283, lexical=<unavailable>) at eval.c:2355:28 [opt] frame #110: 0x000000010b911871 Emacs`funcall_subr(subr=0x000000010ba46b98, numargs=2, args=<unavailable>) at eval.c:3128:19 [opt] frame #111: 0x000000010b910e5f Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3051:11 [opt] frame #112: 0x000000010b9571e2 Emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000010eb5299d, maxdepth=<unavailable>, args_template=<unavailable>, nargs=1, args=<unavailable>) at bytecode.c:632:12 [opt] frame #113: 0x000000010b910def Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #114: 0x000000010b9571e2 Emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000010eb5290d, maxdepth=<unavailable>, args_template=<unavailable>, nargs=1, args=<unavailable>) at bytecode.c:632:12 [opt] frame #115: 0x000000010b910def Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #116: 0x000000010b9571e2 Emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000010eb5287d, maxdepth=<unavailable>, args_template=<unavailable>, nargs=1, args=<unavailable>) at bytecode.c:632:12 [opt] frame #117: 0x000000010b910def Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #118: 0x000000010b9099b9 Emacs`Ffuncall_interactively(nargs=<unavailable>, args=<unavailable>) at callint.c:260:32 [opt] frame #119: 0x000000010b910e5f Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3051:11 [opt] frame #120: 0x000000010b90afa3 Emacs`Fcall_interactively(function=0x0000000002ced1b0, record_flag=0x0000000000000000, keys=0x00007fe1cc498895) at callint.c:791:21 [opt] frame #121: 0x000000010b911891 Emacs`funcall_subr(subr=0x000000010ba461e8, numargs=3, args=<unavailable>) at eval.c:3131:19 [opt] frame #122: 0x000000010b910e5f Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3051:11 [opt] frame #123: 0x000000010b9571e2 Emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000010e964cfd, maxdepth=<unavailable>, args_template=<unavailable>, nargs=1, args=<unavailable>) at bytecode.c:632:12 [opt] frame #124: 0x000000010b910def Emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #125: 0x000000010b9114cc Emacs`call1(fn=<unavailable>, arg1=<unavailable>) at eval.c:2911:10 [opt] frame #126: 0x000000010b88506e Emacs`command_loop_1 at keyboard.c:1489:13 [opt] frame #127: 0x000000010b90ede7 Emacs`internal_condition_case(bfun=(Emacs`command_loop_1 at keyboard.c:1262), handlers=0x0000000000000090, hfun=(Emacs`cmd_error at keyboard.c:925)) at eval.c:1478:25 [opt] frame #128: 0x000000010b88489e Emacs`command_loop_2(handlers=0x0000000000000090) at keyboard.c:1117:11 [opt] frame #129: 0x000000010b90e3fe Emacs`internal_catch(tag=0x000000000000de60, func=<unavailable>, arg=<unavailable>) at eval.c:1198:25 [opt] frame #130: 0x000000010b9e0b78 Emacs`command_loop.cold.1 + 72 frame #131: 0x000000010b884166 Emacs`command_loop at keyboard.c:1092:5 [opt] frame #132: 0x000000010b884076 Emacs`recursive_edit_1 at keyboard.c:720:9 [opt] frame #133: 0x000000010b8842eb Emacs`Frecursive_edit at keyboard.c:792:3 [opt] frame #134: 0x000000010b882e7c Emacs`main(argc=<unavailable>, argv=0x00007ffee4451928) at emacs.c:2310:3 [opt] frame #135: 0x00007fff5efd43d5 libdyld.dylib`start + 1 frame #136: 0x00007fff5efd43d5 libdyld.dylib`start + 1 thread #3, name = 'gmain' frame #0: 0x00007fff5f11136a libsystem_kernel.dylib`poll + 10 frame #1: 0x000000010d84c9f6 libglib-2.0.0.dylib`g_main_context_iterate + 422 frame #2: 0x000000010d84cb06 libglib-2.0.0.dylib`g_main_context_iteration + 102 frame #3: 0x000000010d84eb86 libglib-2.0.0.dylib`glib_worker_main + 54 frame #4: 0x000000010d87aec2 libglib-2.0.0.dylib`g_thread_proxy + 66 frame #5: 0x00007fff5f1c82eb libsystem_pthread.dylib`_pthread_body + 126 frame #6: 0x00007fff5f1cb249 libsystem_pthread.dylib`_pthread_start + 66 frame #7: 0x00007fff5f1c740d libsystem_pthread.dylib`thread_start + 13 thread #5 frame #0: 0x00007fff5f110616 libsystem_kernel.dylib`__select + 10 frame #1: 0x000000010b9a74c2 Emacs`-[EmacsApp fd_handler:](self=<unavailable>, _cmd=<unavailable>, unused=<unavailable>) at nsterm.m:5872:20 [opt] frame #2: 0x00007fff3524d9a2 Foundation`__NSThread__start__ + 1194 frame #3: 0x00007fff5f1c82eb libsystem_pthread.dylib`_pthread_body + 126 frame #4: 0x00007fff5f1cb249 libsystem_pthread.dylib`_pthread_start + 66 frame #5: 0x00007fff5f1c740d libsystem_pthread.dylib`thread_start + 13 thread #8, name = 'com.apple.NSEventThread' frame #0: 0x00007fff5f10921a libsystem_kernel.dylib`mach_msg_trap + 10 frame #1: 0x00007fff5f109768 libsystem_kernel.dylib`mach_msg + 60 frame #2: 0x00007fff32feee0e CoreFoundation`__CFRunLoopServiceMachPort + 328 frame #3: 0x00007fff32fee37c CoreFoundation`__CFRunLoopRun + 1612 frame #4: 0x00007fff32fedade CoreFoundation`CFRunLoopRunSpecific + 455 frame #5: 0x00007fff305eb4a2 AppKit`_NSEventThread + 175 frame #6: 0x00007fff5f1c82eb libsystem_pthread.dylib`_pthread_body + 126 frame #7: 0x00007fff5f1cb249 libsystem_pthread.dylib`_pthread_start + 66 frame #8: 0x00007fff5f1c740d libsystem_pthread.dylib`thread_start + 13 thread #81 frame #0: 0x00007fff5f1c73f0 libsystem_pthread.dylib`start_wqthread thread #86 frame #0: 0x0000000000000000 In GNU Emacs 28.0.50 (build 4, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G9216)) of 2021-08-15 built on Dhamma.local Repository revision: 31ab12e26168c272b291fe91c009cc53b3e55492 Repository branch: master Windowing system distributor 'Apple', version 10.3.1671 System Description: Mac OS X 10.14.6 Configured using: 'configure --with-sound=no --with-x-toolkit=no --with-json --without-compress-install --with-native-compilation' Configured features: ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB Important settings: value of $LANG: en_AU.UTF-8 locale-coding-system: utf-8-unix Major mode: Info Minor modes in effect: windmove-mode: t which-key-mode: t vertico-mode: t global-undo-tree-mode: t undo-tree-mode: t display-time-mode: t pdf-occur-global-minor-mode: t global-git-commit-mode: t magit-auto-revert-mode: t ace-window-display-mode: t save-place-mode: t savehist-mode: t show-paren-mode: t recentf-mode: t minibuffer-depth-indicate-mode: t marginalia-mode: t isearch-mb-mode: t flyspell-lazy-mode: t electric-pair-mode: t diredfl-global-mode: t diff-hl-flydiff-mode: t global-diff-hl-mode: t global-aggressive-indent-mode: t global-so-long-mode: t global-display-line-numbers-mode: t delete-selection-mode: t global-auto-revert-mode: t shell-dirtrack-mode: t auto-compile-on-load-mode: t auto-compile-on-save-mode: t tooltip-mode: t global-eldoc-mode: t electric-quote-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-history-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t window-divider-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/matt/.emacs.d/elpa/magit-20210806.2014/magit-section-pkg hides /Users/matt/.emacs.d/elpa/magit-section-20210806.1607/magit-section-pkg /Users/matt/.emacs.d/elpa/password-store-20200328.1214/password-store hides /usr/local/share/emacs/site-lisp/pass/password-store /Users/matt/.emacs.d/elpa/transient-20210723.1601/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient Features: (shadow epa-file emacsbug em-unix em-term em-script em-prompt em-ls em-hist em-pred em-glob em-dirs esh-var em-cmpl em-basic em-banner em-alias esh-mode network-stream url-cache magit-extras tabify help-fns radix-tree cl-print misearch multi-isearch reposition tramp-cache tramp-sh octave-expansions octave lua-mode ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe ol-docview ol-bibtex bibtex ol-bbdb ol-w3m dired-aux bug-reference pdf-sync pdf-annot pdf-outline pdf-links pdf-history rng-cmpct modus-operandi-theme subword-mode-expansions cap-words superword subword debbugs soap-client url-http url-auth url-gw rng-xsd xsd-regexp diminish mfa-bind mfa-ztree ztree ztree-diff ztree-diff-model ztree-dir ztree-view ztree-protocol ztree-util mfa-xref mfa-windmove windmove mfa-whitespace whitespace mfa-which-key which-key mfa-wgrep mfa-vterm mfa-vertico consult-vertico vertico mfa-vdiff-magit vdiff-magit magit-ediff mfa-vdiff vdiff hydra lv mfa-undo-tree undo-tree mfa-tramp tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp mfa-tab-bar time mfa-symbol-overlay symbol-overlay mfa-rg rg rg-info-hack rg-menu rg-ibuffer ibuf-macs rg-result wgrep-rg wgrep rg-history rg-header mfa-pdf-tools pdf-occur ibuf-ext tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc pdf-tools pdf-view pdf-cache pdf-info pdf-util pdf-macs mfa-password-store mfa-passmm passmm password-store auth-source-pass mfa-mu4e mu4e mu4e-org mu4e-main mu4e-view mu4e-view-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win mu4e-view-common mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions rfc2368 mu4e-mark mu4e-proc mu4e-utils mu4e-lists mu4e-message flow-fill hl-line mu4e-vars mu4e-meta mfa-mpv mpv tq org-timer org-clock mfa-modus-themes modus-themes mfa-man man mfa-magit magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-section benchmark magit-utils which-func ido crm mfa-info mfa-exwm exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input xcb-keysyms exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xkb xcb-xproto xcb-types xcb-debug mfa-embark embark-consult embark mfa-elpher ffap socks nsm elpher mfa-elfeed elfeed-show elfeed-search vc-mtn vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs message rmc rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib xml-query mfa-eglot eglot array jsonrpc ert debug backtrace flymake-proc flymake mfa-diacritics mfa-doc-view doc-view jka-compr image-mode exif mfa-desktop desktop frameset mfa-dabbrev dabbrev mfa-consult consult-xref consult mfa-calendar mfa-avy mfa-ace-window ace-window mfa-ace-link ace-link avy saveplace savehist rotate re-builder rainbow-delimiters rfc-mode pinentry paren foldout org-noter prot-orderless orderless nxml-mode-expansions rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok nov recentf tree-widget the-org-mode-expansions org-element avl-tree generator org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs bookmark esxml-query multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core rect move-text mb-depth mhtml-mode css-mode-expansions css-mode smie html-mode-expansions sgml-mode marginalia js-mode-expansions js imenu cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs isearch-mb impatient-mode htmlize simple-httpd ibuffer ibuffer-loaddefs hideshow grep gnutls form-feed flyspell-lazy flyspell-correct flyspell ispell expand-region text-mode-expansions er-basic-expansions expand-region-core expand-region-custom prot-eww prot-pulse pulse prot-common eww xdg url-queue shr kinsoku svg xml dom puny mm-url gnus nnheader gnus-util rmail rmail-loaddefs time-date eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util enriched facemenu elec-pair ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util dumb-jump popup s xref project display-fill-column-indicator diredfl dired-subtree dired-narrow dired-hacks-utils dash dired-x diff-hl-flydiff diff diff-hl vc-hg vc-git log-view pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode cus-edit pp cus-load wid-edit calc calc-loaddefs calc-macs apropos aggressive-indent lisp-mnt mail-parse rfc2231 so-long display-line-numbers delsel autorevert filenotify server anaphora mfa nush nu advice cl nonsense smtpmail sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils regsearch thingatpt aside-dired dired dired-loaddefs aside-context aside-vterm vterm derived face-remap compile text-property-search color term disp-table shell pcomplete ehelp comint ansi-color ring find-func vterm-module term/xterm xterm aside-hook-functions aside edmacro kmacro info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core eieio-loaddefs password-cache json map url-vars auto-compile comp comp-cstr warnings subr-x rx cl-seq cl-extra help-mode easy-mmode packed cl-macs pcase cl-loaddefs cl-lib seq byte-opt gv bytecomp byte-compile cconv iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer 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 cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 3345093 414274) (symbols 48 83859 2) (strings 32 286646 14922) (string-bytes 1 11335765) (vectors 16 118575) (vector-slots 8 2919333 305282) (floats 8 2527 858) (intervals 56 446349 1375) (buffers 992 130))
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 07:37:02 GMT) Full text and rfc822 format available.Message #8 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Matt Beshara <m <at> mfa.pw> Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 10:36:35 +0300
> From: Matt Beshara <m <at> mfa.pw> > Date: Sun, 15 Aug 2021 12:46:09 +1000 > > >From emacs -Q: > 1. M-x eww RET > 2. mfa.pw/brave-new-world.xml RET > 3. C-x h > 4. M-w > 5. C-x b *scratch* RET > 6. (require 'savehist) C-j > 7. (setq savehist-additional-variables '(kill-ring)) C-j > 8. (savehist-save) C-j > At this point ‘savehist-save’ will work as intended, even with > the > large amount of XML in the kill ring. > 9. C-x b *eww* RET > 10. M-x nxml-mode RET > 11. C-x h > 12. M-w > 13. C-x b *scratch* RET > 14. (savehist-save) C-j > Here is where Emacs hangs. The Emacs process’s CPU usage goes > to > 100%, and it starts consuming greater and greater amounts of > memory. nXML puts a lot of its private text properties on the text. My guess is that producing a printed representation for that consumes inordinate amounts of memory. For me, Emacs runs out of memory even if I M-w only the initial chunk of the file that ends with "<p>Created with abbyy2epub (v.1.7.6)</p></div>", and then do this in *scratch*: kill-ring C-x C-e
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 08:38:02 GMT) Full text and rfc822 format available.Message #11 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: m <at> mfa.pw Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 11:37:19 +0300
> Date: Sun, 15 Aug 2021 10:36:35 +0300 > From: Eli Zaretskii <eliz <at> gnu.org> > Cc: 50061 <at> debbugs.gnu.org > > nXML puts a lot of its private text properties on the text. My guess > is that producing a printed representation for that consumes > inordinate amounts of memory. Specifically, it's the 'rng-state' property on the "</p>" that ends a paragraph. It's a massive recursive data structure, and printing it takes a lot of memory. Maybe nXML could arrange for these properties to be removed when copying to the kill-ring, but would it get in the way if you want to paste into an XML buffer?
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 10:46:02 GMT) Full text and rfc822 format available.Message #14 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Matt Beshara <m <at> mfa.pw> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 20:38:04 +1000
Eli Zaretskii <eliz <at> gnu.org> writes: > Specifically, it's the 'rng-state' property on the "</p>" that > ends a > paragraph. It's a massive recursive data structure, and > printing it > takes a lot of memory. Maybe nXML could arrange for these > properties > to be removed when copying to the kill-ring, but would it get in > the > way if you want to paste into an XML buffer? I haven’t had time to look at the code yet, so I’m not sure what information the ‘rng-state’ property contains, and whether it would cause any problems (to me) for it to be removed when copied. That said, personally, I don’t think there could be any side effect of removing that property from copied XML which would be more disruptive than savehist causing Emacs to hang completely when trying to save my kill ring. Also, would nXML not be able to recreate any missing data it needed from the ‘rng-state’ property if the plain text of the XML was then pasted into an nXML buffer again?
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 11:26:01 GMT) Full text and rfc822 format available.Message #17 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Matt Beshara <m <at> mfa.pw> Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 14:25:03 +0300
> From: Matt Beshara <m <at> mfa.pw> > Cc: 50061 <at> debbugs.gnu.org > Date: Sun, 15 Aug 2021 20:38:04 +1000 > > > Eli Zaretskii <eliz <at> gnu.org> writes: > > > Specifically, it's the 'rng-state' property on the "</p>" that > > ends a > > paragraph. It's a massive recursive data structure, and > > printing it > > takes a lot of memory. Maybe nXML could arrange for these > > properties > > to be removed when copying to the kill-ring, but would it get in > > the > > way if you want to paste into an XML buffer? > > I haven’t had time to look at the code yet, so I’m not sure what > information the ‘rng-state’ property contains, and whether it > would cause any problems (to me) for it to be removed when copied. > That said, personally, I don’t think there could be any side > effect of removing that property from copied XML which would be > more disruptive than savehist causing Emacs to hang completely > when trying to save my kill ring. Also, would nXML not be able to > recreate any missing data it needed from the ‘rng-state’ property > if the plain text of the XML was then pasted into an nXML buffer > again? Sorry, I don't know enough about nXML to answer those questions. But I think patches to remove that property when copying stuff to the kill-ring will be welcome.
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 11:45:01 GMT) Full text and rfc822 format available.Message #20 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Matt Beshara <m <at> mfa.pw>, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 13:44:38 +0200
Eli Zaretskii <eliz <at> gnu.org> writes: > Sorry, I don't know enough about nXML to answer those questions. But > I think patches to remove that property when copying stuff to the > kill-ring will be welcome. If I remember correctly from the last time I poked at `nxml-mode', those properties should be recomputed automatically. So I guess the mode could add those properties to `yank-excluded-properties' buffer-locally and that should fix this issue? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 11:47:01 GMT) Full text and rfc822 format available.Message #23 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Matt Beshara <m <at> mfa.pw>, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 13:46:33 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes: > So I guess the mode could add those properties to > `yank-excluded-properties' buffer-locally and that should fix this issue? Er, no, we want to inhibit those properties from even landing in the kill ring? So that doesn't help. Do we have something in Emacs that filters the text properties when copying to the kill ring? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 12:17:01 GMT) Full text and rfc822 format available.Message #26 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Andreas Schwab <schwab <at> linux-m68k.org> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: Matt Beshara <m <at> mfa.pw>, Eli Zaretskii <eliz <at> gnu.org>, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 14:16:49 +0200
On Aug 15 2021, Lars Ingebrigtsen wrote: > Do we have something in Emacs that > filters the text properties when copying to the kill ring? It is called filter-buffer-substring-function. Andreas. -- Andreas Schwab, schwab <at> linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 13:46:01 GMT) Full text and rfc822 format available.Message #29 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Andreas Schwab <schwab <at> linux-m68k.org> Cc: Matt Beshara <m <at> mfa.pw>, Eli Zaretskii <eliz <at> gnu.org>, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 15:45:13 +0200
Andreas Schwab <schwab <at> linux-m68k.org> writes: > It is called filter-buffer-substring-function. Ah, thanks. I've now pushed a fix using this mechanism, and as far as I can tell, it seems to work fine (and doesn't seem to lead to any regressions in nxml-mode). Matt, can you try updating and see whether this solves the problem for you, too? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Sun, 15 Aug 2021 13:46:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 14:09:02 GMT) Full text and rfc822 format available.Message #34 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: m <at> mfa.pw, schwab <at> linux-m68k.org, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 17:07:50 +0300
> From: Lars Ingebrigtsen <larsi <at> gnus.org> > Cc: Matt Beshara <m <at> mfa.pw>, Eli Zaretskii <eliz <at> gnu.org>, > 50061 <at> debbugs.gnu.org > Date: Sun, 15 Aug 2021 15:45:13 +0200 > > Andreas Schwab <schwab <at> linux-m68k.org> writes: > > > It is called filter-buffer-substring-function. > > Ah, thanks. > > I've now pushed a fix using this mechanism, and as far as I can tell, it > seems to work fine (and doesn't seem to lead to any regressions in > nxml-mode). I see the filter you installed removes the fontified property as well? Why is that? I don't think we do that anywhere else.
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 14:25:01 GMT) Full text and rfc822 format available.Message #37 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: m <at> mfa.pw, schwab <at> linux-m68k.org, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 16:23:54 +0200
Eli Zaretskii <eliz <at> gnu.org> writes: > I see the filter you installed removes the fontified property as well? > Why is that? I don't think we do that anywhere else. I thought I vaguely remembered nxml-mode using the font-lock machinery for some of this stuff, so I wanted (when yanking stuff back into an nxml-mode buffer) all of the data to be recomputed (if necessary). But I may be misremembering -- if it's not using font-lock for this, then removing `fontified' should be unnecessary. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 14:33:01 GMT) Full text and rfc822 format available.Message #40 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: m <at> mfa.pw, schwab <at> linux-m68k.org, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Sun, 15 Aug 2021 17:31:42 +0300
> From: Lars Ingebrigtsen <larsi <at> gnus.org> > Cc: schwab <at> linux-m68k.org, m <at> mfa.pw, 50061 <at> debbugs.gnu.org > Date: Sun, 15 Aug 2021 16:23:54 +0200 > > Eli Zaretskii <eliz <at> gnu.org> writes: > > > I see the filter you installed removes the fontified property as well? > > Why is that? I don't think we do that anywhere else. > > I thought I vaguely remembered nxml-mode using the font-lock machinery > for some of this stuff, so I wanted (when yanking stuff back into an > nxml-mode buffer) all of the data to be recomputed (if necessary). > > But I may be misremembering -- if it's not using font-lock for this, > then removing `fontified' should be unnecessary. I think we shouldn't remove that property, because it's unnecessary, and because filter-buffer-substring-function is used not only for copying text into the kill-ring. We should leave there properties that cause no trouble.
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Sun, 15 Aug 2021 22:42:01 GMT) Full text and rfc822 format available.Message #43 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Matt Beshara <m <at> mfa.pw> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Mon, 16 Aug 2021 08:39:44 +1000
Lars Ingebrigtsen <larsi <at> gnus.org> writes: > Matt, can you try updating and see whether this solves the > problem for > you, too? Works like a charm. Thanks for your help!
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Mon, 16 Aug 2021 11:19:01 GMT) Full text and rfc822 format available.Message #46 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: m <at> mfa.pw, schwab <at> linux-m68k.org, 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Mon, 16 Aug 2021 13:17:40 +0200
Eli Zaretskii <eliz <at> gnu.org> writes: > I think we shouldn't remove that property, because it's unnecessary, > and because filter-buffer-substring-function is used not only for > copying text into the kill-ring. We should leave there properties > that cause no trouble. OK; removed the removal. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#50061
; Package emacs
.
(Mon, 16 Aug 2021 11:19:02 GMT) Full text and rfc822 format available.Message #49 received at 50061 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Matt Beshara <m <at> mfa.pw> Cc: 50061 <at> debbugs.gnu.org Subject: Re: bug#50061: 28.0.50; Hang caused by savehist-save when saving kill ring with large amount of data from nxml-mode buffer Date: Mon, 16 Aug 2021 13:17:59 +0200
Matt Beshara <m <at> mfa.pw> writes: > Lars Ingebrigtsen <larsi <at> gnus.org> writes: > >> Matt, can you try updating and see whether this solves the problem >> for >> you, too? > > Works like a charm. Thanks for your help! Thanks for checking; I'm closing this bug report, then. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Mon, 16 Aug 2021 11:19:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Mon, 13 Sep 2021 11:24:06 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.