* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty @ 2020-11-07 18:39 Amin Bandali 2020-11-07 18:58 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-07 18:39 UTC (permalink / raw) To: 44506 [-- Attachment #1: Type: text/plain, Size: 412 bytes --] I noticed today that when trying to open the following message (attached with John's permission) using Gnus in a terminal emulator or a tty in GNU/Linux, it results in Emacs quitting with a segfault. I'm also attaching the result of running `bt full' in GDB after the segfault. The issue seems related in part to the inclusion of Persian characters in the message body. * * * [-- Attachment #2: Type: message/rfc822, Size: 3811 bytes --] [-- Attachment #2.1.1: Type: text/plain, Size: 323 bytes --] >>>>> Amin Bandali <bandali@gnu.org> writes: > Fingers crossed maybe that's changed now? :-) If neither want to do it, and it doesn't sound like they do, then I'll meet with Eli on Zoom, get the year's update from him, take some notes, and then present them for you at Emacs Conf. :) مرسی دوستم، John [-- Attachment #2.1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 658 bytes --] [-- Attachment #3: Type: text/plain, Size: 41 bytes --] * * * [-- Attachment #4: bt-full.txt --] [-- Type: text/plain, Size: 7500 bytes --] #0 0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0, src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at term.c:564 cmp = 0x0 gstring = 0x0 i = <optimized out> src_end = 0x7ffff7f61cf0 buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود یسر", '-' <repeats 39 times> nchars = 0 nbytes = 0 required = <optimized out> tbase = 0x0 charset_list = 0x7fffea1f724b #1 0x0000555555639b66 in tty_write_glyphs (f=<optimized out>, string=<optimized out>, len=<optimized out>) at term.c:773 face_id = 11 conversion_buffer = <optimized out> coding = 0x555555e7ec00 n = <optimized out> stringlen = 48 tty = 0x555555e7ee70 #2 0x0000555555597a93 in update_frame_line (f=f@entry=0x555555e35798, vpos=28, updating_menu_p=updating_menu_p@entry=false) at dispnew.c:5089 obody = <optimized out> nbody = 0x7ffff7f60850 op1 = <optimized out> op2 = <optimized out> np1 = <optimized out> nend = <optimized out> tem = <optimized out> osp = <optimized out> nsp = <optimized out> begmatch = <optimized out> endmatch = <optimized out> olen = 0 nlen = <optimized out> current_matrix = <optimized out> desired_matrix = <optimized out> current_row = <optimized out> desired_row = <optimized out> must_write_whole_line_p = <optimized out> write_spaces_p = <optimized out> colored_spaces_p = true #3 0x000055555559a553 in update_frame_1 (f=f@entry=0x555555e35798, force_p=force_p@entry=true, inhibit_id_p=<optimized out>, inhibit_id_p@entry=false, set_cursor_p=set_cursor_p@entry=true, updating_menu_p=updating_menu_p@entry=false) at dispnew.c:4787 current_matrix = 0x555555e3ddc0 desired_matrix = 0x555555e3dd50 i = 28 pause_p = <optimized out> preempt_count = 17 #4 0x000055555559d8f7 in update_frame (f=f@entry=0x555555e35798, force_p=true, force_p@entry=false, inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3246 paused_p = <optimized out> #5 0x00005555555d594a in redisplay_internal () at xdisp.c:16023 gcscrollbars = <optimized out> f_redisplay_flag = <optimized out> f = 0x555555e35798 w = <optimized out> sw = <optimized out> fr = <optimized out> pending = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = <optimized out> tlendpos = <optimized out> number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = true tail = 0x555555e3ace3 hscroll_retries = <optimized out> garbaged_frame_retries = 0 consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> #6 0x00005555555d77d5 in redisplay () at xdisp.c:15159 #7 0x000055555567c353 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x555556db11a3, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffd68b, end_time=end_time@entry=0x0) at keyboard.c:2497 echo_current = false c = <optimized out> jmpcount = <optimized out> local_getcjmp = {{__jmpbuf = {93825009513893, 93825026478419, 18474, 0, 35328, 93825016046691, 0, 1}, __mask_was_saved = 1451053389, __saved_mask = {__val = {93824994266479, 93825009513888, 140737488344288, 93825009513893, 35328, 0, 93824993873484, 938 25009513888, 160, 73902, 0, 18475, 140737488343904, 93825011634509, 0, 0}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555555e81710 #8 0x000055555567eb31 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd7a0, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buff er@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9546 interrupted_kboard = 0x555555e81710 interrupted_frame = 0x555555e35798 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x555556db11a3 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x555555e39f63, map = 0x555555e39f63, start = 0, end = 0} keytran = {parent = 0x7fffea246523, map = 0x7fffea246523, start = 0, end = 0} indec = {parent = 0x555555e39f53, map = 0x555555e39f53, start = 0, end = 0} shift_translated = false delayed_switch_frame = 0x0 original_uppercase = 0x0 original_uppercase_position = -1 dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #9 0x00005555556803fc in command_loop_1 () at keyboard.c:1354 cmd = <optimized out> keybuf = {0x36, 0xfa, 0x126, 0x2aaa94354e18, 0x0, 0x4000000010000000, 0x400000003f000000, 0x555555d994a0 <lispsym>, 0x7fffffffd8b0, 0x5555556ef2ca <eval_sub+586>, 0x4, 0x3400000013, 0x0, 0x0, 0x0, 0x4, 0x5b0000006e, 0x0, 0x555555e74db8, 0x120, 0x7ffff 1aaec40 <main_arena>, 0x5d6fc5937978a300, 0x78, 0x7fffffffd880, 0x0, 0x555555e3a033, 0x0, 0x5555556eccf4 <unbind_to+148>, 0x8, 0x8340} i = <optimized out> prev_modiff = 2705 prev_buffer = 0x5555565cf5a0 #10 0x00005555556ec43e in internal_condition_case (bfun=bfun@entry=0x555555680210 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x555555676ed0 <cmd_error>) at eval.c:1359 val = <optimized out> c = 0x555555e64100 #11 0x0000555555671774 in command_loop_2 (ignore=ignore@entry=0x0) at keyboard.c:1095 val = 0x0 #12 0x00005555556ec3ad in internal_catch (tag=tag@entry=0xd740, func=func@entry=0x555555671750 <command_loop_2>, arg=arg@entry=0x0) at eval.c:1120 val = <optimized out> c = 0x555555e817e0 #13 0x000055555567170b in command_loop () at keyboard.c:1074 #14 0x0000555555676ae6 in recursive_edit_1 () at keyboard.c:718 val = <optimized out> #15 0x0000555555676e06 in Frecursive_edit () at keyboard.c:790 buffer = <optimized out> #16 0x0000555555593e59 in main (argc=2, argv=<optimized out>) at emacs.c:2047 stack_bottom_variable = 0x300000003 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = <optimized out> dump_mode = <optimized out> skip_args = 1 temacs = 0x0 attempt_load_pdump = <optimized out> rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> [-- Attachment #5: Type: text/plain, Size: 21434 bytes --] * * * In GNU Emacs 28.0.50 (build 4, x86_64-pc-linux-gnu, X toolkit, cairo version 1.15.10, Xaw3d scroll bars) of 2020-11-07 built on langa Repository revision: 423b6b62296df0558cf16f286dd268e0b49b3bce Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Trisquel GNU/Linux Etiona (9.0) Configured using: 'configure --without-gconf --without-gsettings --without-gpm --with-x-toolkit=lucid --with-xaw3d --with-mailutils --prefix=/data/bandali/u/local' Configured features: XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 Important settings: value of $LANG: en_CA.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Group Minor modes in effect: gnus-topic-mode: t gnus-undo-mode: t yas-global-mode: t yas-minor-mode: t server-mode: t global-hl-todo-mode: t global-page-break-lines-mode: t pixel-scroll-mode: t amx-mode: t counsel-mode: t ivy-mode: t recentf-mode: t save-place-mode: t savehist-mode: t show-paren-mode: t winner-mode: t display-battery-mode: t display-time-mode: t global-auto-revert-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-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 temp-buffer-resize-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-screen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-screen /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lilypond hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lilypond /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-eval hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-eval /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-id hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-id /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sql hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sql /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-latex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-latex /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-w3m hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-w3m /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-mobile hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-mobile /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-scheme hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-scheme /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-calc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-calc /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-feed hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-feed /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-clojure hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-clojure /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-faces hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-faces /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-shell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-shell /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-table hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-table /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-eww hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-eww /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-lint hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-lint /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-rmail hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-rmail /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-list hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-list /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-octave hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-octave /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-js hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-js /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-asymptote hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-asymptote /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-python hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-python /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sed hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sed /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-element hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-element /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-archive hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-archive /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ebnf hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ebnf /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-mscgen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-mscgen /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sqlite hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sqlite /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-capture hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-capture /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ocaml hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ocaml /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-perl hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-perl /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-goto hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-goto /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-makefile hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-makefile /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-irc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-irc /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-picolisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-picolisp /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-awk hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-awk /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-mouse hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-mouse /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-eshell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-eshell /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ruby hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ruby /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-J hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-J /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-attach hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-attach /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-habit hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-habit /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-ascii hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-ascii /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-macs hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-macs /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-io hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-io /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-tempo hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-tempo /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lisp /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-plot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-plot /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-org /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-docview hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-docview /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-bbdb hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-bbdb /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-attach-git hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-attach-git /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-icalendar hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-icalendar /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-emacs-lisp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ledger hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ledger /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-publish hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-publish /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-ctags hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-ctags /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-odt hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-odt /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-md hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-md /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-entities hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-entities /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-haskell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-haskell /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-fortran hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-fortran /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-sass hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-sass /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-info hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-info /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-timer hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-timer /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-matlab hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-matlab /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-inlinetask hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-inlinetask /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-gnus hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-gnus /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-groovy hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-groovy /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-eshell hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-eshell /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-datetree hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-datetree /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-plantuml hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-plantuml /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lua hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lua /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-num hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-num /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-abc hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-abc /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-man hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-man /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-latex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-latex /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-footnote hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-footnote /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-core hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-core /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-pcomplete hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-pcomplete /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-indent hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-indent /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-macro hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-macro /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-stan hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-stan /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-tangle hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-tangle /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-dot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-dot /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-loaddefs hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-loaddefs /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-clock hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-clock /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-forth hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-forth /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-C hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-C /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-shen hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-shen /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-maxima hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-maxima /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-protocol hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-protocol /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-compat hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-compat /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-vala hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-vala /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-keys hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-keys /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-src hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-src /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-java hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-java /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-table hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-table /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-css hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-css /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-hledger hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-hledger /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-bibtex hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-bibtex /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ditaa hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ditaa /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-beamer hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-beamer /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-texinfo hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-texinfo /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-colview hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-colview /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-gnuplot hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ol-mhe hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ol-mhe /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-duration hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-duration /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-exp hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-exp /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-org hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-org /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-processing hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-processing /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-coq hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-coq /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-version hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-version /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-lob hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-lob /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-R hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-R /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ox-html hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ox-html /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-agenda hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-agenda /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-install hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-install /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-comint hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-comint /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/ob-ref hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/ob-ref /home/bandali/.emacs.d/elpa/org-plus-contrib-20201019/org-crypt hides /data/bandali/u/local/share/emacs/28.0.50/lisp/org/org-crypt Features: (shadow sort gnus-cite orgalist org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete 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 flyspell ispell mail-extr emacsbug thingatpt gnus-async qp gnus-ml gnus-topic nndraft nnmh gnutls utf-7 epa-file network-stream nsm nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win ebdb-message sendmail message rmc puny rfc822 mml mml-sec epa derived epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe find-func eieio-base cal-menu calendar cal-loaddefs timezone gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums time-date mail-utils mm-util mail-prsvr boxquote rect yasnippet server hl-todo pcase disp-table page-break-lines delight pixel-scroll amx easy-mmode s counsel xdg xref project dired-x dired dired-loaddefs compile text-property-search comint ansi-color swiper cl-extra help-mode ido ivy delsel colir color ivy-overlay recentf tree-widget wid-edit refinery-theme finder-inf info package easymenu 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 cl-seq eieio eieio-core eieio-loaddefs password-cache json map url-vars saveplace savehist paren bandali-erc bandali-ebdb bandali-message bandali-gnus bandali-dired bandali-ibuffer ibuf-macs bandali-eshell bandali-ivy bandali-theme bandali-org edmacro kmacro advice winner ring format-spec battery dbus xml subr-x seq byte-opt bytecomp byte-compile cconv time autorevert filenotify cl-macs gv cl-loaddefs cl-lib 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 tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu 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 inotify lcms2 dynamic-setting font-render-setting cairo x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 312034 24023) (symbols 48 28635 4) (strings 32 94007 4976) (string-bytes 1 3322781) (vectors 16 45126) (vector-slots 8 578609 7922) (floats 8 378 192) (intervals 56 1531 0) (buffers 992 23)) ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-07 18:39 bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty Amin Bandali @ 2020-11-07 18:58 ` Eli Zaretskii 2020-11-07 20:03 ` Amin Bandali 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-07 18:58 UTC (permalink / raw) To: Amin Bandali; +Cc: 44506 > From: Amin Bandali <bandali@gnu.org> > Date: Sat, 07 Nov 2020 13:39:14 -0500 > > I noticed today that when trying to open the following message (attached > with John's permission) using Gnus in a terminal emulator or a tty in > GNU/Linux, it results in Emacs quitting with a segfault. I'm also > attaching the result of running `bt full' in GDB after the segfault. > The issue seems related in part to the inclusion of Persian characters > in the message body. Just visiting the text you send in "emacs -Q -nw" doesn't cause any segfaults. Does it happen to you in "emacs -Q"? > #0 0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0, src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at term.c:564 > cmp = 0x0 > gstring = 0x0 > i = <optimized out> > src_end = 0x7ffff7f61cf0 > buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود یسر", '-' <repeats 39 times> > nchars = 0 > nbytes = 0 > required = <optimized out> > tbase = 0x0 > charset_list = 0x7fffea1f724b This is an optimized build, so it's hard to understand what caused the crash. According to the line number, it crashes here: if (src->u.cmp.automatic) { gstring = composition_gstring_from_id (src->u.cmp.id); required = src->slice.cmp.to - src->slice.cmp.from + 1; } else { cmp = composition_table[src->u.cmp.id]; <<<<<<<<<<<<<<< required = cmp->glyph_len; } If that is true, then I don't understand how it happened: we don't use any compositions except automatic in Emacs, so I'm unsure how you get to that place. Can you see which place in the code indeed crashes and why? ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-07 18:58 ` Eli Zaretskii @ 2020-11-07 20:03 ` Amin Bandali 2020-11-07 20:29 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-07 20:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506 [-- Attachment #1: Type: text/plain, Size: 2583 bytes --] Eli Zaretskii writes: >> From: Amin Bandali <bandali@gnu.org> >> Date: Sat, 07 Nov 2020 13:39:14 -0500 >> >> I noticed today that when trying to open the following message (attached >> with John's permission) using Gnus in a terminal emulator or a tty in >> GNU/Linux, it results in Emacs quitting with a segfault. I'm also >> attaching the result of running `bt full' in GDB after the segfault. >> The issue seems related in part to the inclusion of Persian characters >> in the message body. > > Just visiting the text you send in "emacs -Q -nw" doesn't cause any > segfaults. Does it happen to you in "emacs -Q"? > It does not indeed. With -Q, visiting the message body saved into a regular text file or opening the actual message using Gnus does not result in a segfault. After some bisecting of my config files, I narrowed the segaulting of Gnus when opening that message down to inclusion of (require 'ebdb-gnus) in my configs. ebdb-gnus is part of EBDB, available on GNU ELPA. I'm Cc'ing Eric, EBDB's creator and maintainer, in case he might have any ideas. >> #0 0x0000555555639248 in encode_terminal_code (src=0x7ffff7f61cc0, >> src_len=src_len@entry=1, coding=coding@entry=0x555555e7ec00) at >> term.c:564 >> cmp = 0x0 >> gstring = 0x0 >> i = <optimized out> >> src_end = 0x7ffff7f61cf0 >> buf = 0x5555561483a0 ' ' <repeats 94 times>, "John ،متسود >> یسر", '-' <repeats 39 times> >> nchars = 0 >> nbytes = 0 >> required = <optimized out> >> tbase = 0x0 >> charset_list = 0x7fffea1f724b > > This is an optimized build, so it's hard to understand what caused the > crash. According to the line number, it crashes here: > > if (src->u.cmp.automatic) > { > gstring = composition_gstring_from_id (src->u.cmp.id); > required = src->slice.cmp.to - src->slice.cmp.from + 1; > } > else > { > cmp = composition_table[src->u.cmp.id]; <<<<<<<<<<<<<<< > required = cmp->glyph_len; > } > > If that is true, then I don't understand how it happened: we don't use > any compositions except automatic in Emacs, so I'm unsure how you get > to that place. Can you see which place in the code indeed crashes and > why? > GDB's source display does indeed highlight that line for me. Is this the confirmation you were looking for, or did you mean I should look into disabling optimization and *then* run Emacs through GDB to collect the backtrace? Thanks for your help. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-07 20:03 ` Amin Bandali @ 2020-11-07 20:29 ` Eli Zaretskii 2020-11-08 4:03 ` Eric Abrahamsen 2020-11-08 4:05 ` Eric Abrahamsen 0 siblings, 2 replies; 22+ messages in thread From: Eli Zaretskii @ 2020-11-07 20:29 UTC (permalink / raw) To: Amin Bandali; +Cc: eric, 44506 > From: Amin Bandali <bandali@gnu.org> > Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net> > Date: Sat, 07 Nov 2020 15:03:53 -0500 > > After some bisecting of my config files, I narrowed the segaulting of > Gnus when opening that message down to inclusion of (require 'ebdb-gnus) > in my configs. ebdb-gnus is part of EBDB, available on GNU ELPA. I'm > Cc'ing Eric, EBDB's creator and maintainer, in case he might have any > ideas. I don't see anything in EBDB that could cause Emacs to use static compositions, but maybe I'm missing something. > > if (src->u.cmp.automatic) > > { > > gstring = composition_gstring_from_id (src->u.cmp.id); > > required = src->slice.cmp.to - src->slice.cmp.from + 1; > > } > > else > > { > > cmp = composition_table[src->u.cmp.id]; <<<<<<<<<<<<<<< > > required = cmp->glyph_len; > > } > > > > If that is true, then I don't understand how it happened: we don't use > > any compositions except automatic in Emacs, so I'm unsure how you get > > to that place. Can you see which place in the code indeed crashes and > > why? > > GDB's source display does indeed highlight that line for me. Is this > the confirmation you were looking for, or did you mean I should look > into disabling optimization and *then* run Emacs through GDB to collect > the backtrace? Reproducing in an unoptimized build would be the most efficient way of telling if that's indeed something related to static compositions. Thanks. ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-07 20:29 ` Eli Zaretskii @ 2020-11-08 4:03 ` Eric Abrahamsen 2020-11-08 14:56 ` Eli Zaretskii 2020-11-08 4:05 ` Eric Abrahamsen 1 sibling, 1 reply; 22+ messages in thread From: Eric Abrahamsen @ 2020-11-08 4:03 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Amin Bandali, 44506 On 11/07/20 22:29 PM, Eli Zaretskii wrote: >> From: Amin Bandali <bandali@gnu.org> >> Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net> >> Date: Sat, 07 Nov 2020 15:03:53 -0500 >> >> After some bisecting of my config files, I narrowed the segaulting of >> Gnus when opening that message down to inclusion of (require 'ebdb-gnus) >> in my configs. ebdb-gnus is part of EBDB, available on GNU ELPA. I'm >> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any >> ideas. > > I don't see anything in EBDB that could cause Emacs to use static > compositions, but maybe I'm missing something. FWIW I was able to reproduce the segfault in terminal (not in GUI). I don't know what static compositions are, but the places where EBDB messes with lower-level character stuff are pasted below. As you can see it's pretty ad-hoc stuff. There's also ebdb-i18n.el, but that mostly just involves looking up the scripts of characters in `char-script-table'. (defconst ebdb-char-fold-table (eval-when-compile (let ((tbl (make-char-table 'char-fold-table)) (uni (unicode-property-table-internal 'decomposition)) ;; Lowercase and uppercase alphabet. (target-seq (append (number-sequence 65 90) (number-sequence 97 122)))) ;; I don't understand what's happening here, but it's necessary. (let ((func (char-table-extra-slot uni 1))) (map-char-table (lambda (char v) (when (consp char) (funcall func (car char) v uni))) uni)) ;; Create lists of equivalent chars, keyed to the most basic ;; ascii letter. (map-char-table (lambda (char decomp) (when (consp decomp) (when (symbolp (car decomp)) (setq decomp (cdr decomp))) (when (memq (car decomp) target-seq) (aset tbl (car decomp) (cons char (aref tbl (car decomp))))))) uni) ;; Then turn the lists into regexps. (map-char-table (lambda (char dec-list) (let ((re (regexp-opt (cons (char-to-string char) (mapcar #'string dec-list))))) (aset tbl char re))) tbl) tbl)) "Char-table holding regexps used in char fold searches. Keys are characters in the upper- and lower-case ascii ranges. Values are a regexp matching all characters that decompose to the key character.") (defun ebdb-char-fold-to-regexp (string) "A highly simplified version of `char-fold-to-regexp'. Only converts characters in STRING that decompose to the range [a-zA-Z]." (let ((out nil) (end (length string)) char (i 0)) (while (< i end) (setq char (aref string i)) (push (or (aref ebdb-char-fold-table char) (string char)) out) (cl-incf i)) (setq out (apply #'concat (nreverse out))) (if (> (length out) 5000) (regexp-quote string) out))) ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 4:03 ` Eric Abrahamsen @ 2020-11-08 14:56 ` Eli Zaretskii 2020-11-08 18:27 ` Amin Bandali 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-08 14:56 UTC (permalink / raw) To: Eric Abrahamsen; +Cc: bandali, 44506 > From: Eric Abrahamsen <eric@ericabrahamsen.net> > Cc: Amin Bandali <bandali@gnu.org>, 44506@debbugs.gnu.org > Date: Sat, 07 Nov 2020 20:03:14 -0800 > > >> After some bisecting of my config files, I narrowed the segaulting of > >> Gnus when opening that message down to inclusion of (require 'ebdb-gnus) > >> in my configs. ebdb-gnus is part of EBDB, available on GNU ELPA. I'm > >> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any > >> ideas. > > > > I don't see anything in EBDB that could cause Emacs to use static > > compositions, but maybe I'm missing something. > > FWIW I was able to reproduce the segfault in terminal (not in GUI). Half the kingdom for a reproduction recipe that doesn't need Gnus or EBDB, or at least starts with "emacs -Q" and loads whatever packages are needed as part of the recipe. > I don't know what static compositions are, but the places where EBDB > messes with lower-level character stuff are pasted below. As you can > see it's pretty ad-hoc stuff. I don't think I see the relevance, not yet. The crash happened during routine redisplay, and ebdb-search, which is the consumer of ebdb-char-fold-table, is nowhere on the crash backtrace. So I still think a backtrace from an unoptimized build, where I can see the exact locus of the crash and ask for values of some variables, would be the fastest path to finding the culprit. Thanks. ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 14:56 ` Eli Zaretskii @ 2020-11-08 18:27 ` Amin Bandali 2020-11-08 18:54 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-08 18:27 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506 [-- Attachment #1.1: Type: text/plain, Size: 332 bytes --] Eli Zaretskii writes: [...] > > So I still think a backtrace from an unoptimized build, where I can > see the exact locus of the crash and ask for values of some variables, > would be the fastest path to finding the culprit. > Please find attached the result of `bt full' from an unoptimized build. > > Thanks. > Thanks again. [-- Attachment #1.2: bt-full-debug.txt --] [-- Type: text/plain, Size: 8107 bytes --] #0 0x00005555556be41e in encode_terminal_code (src=0x7ffff7f59400, src_len=1, coding=0x55555615e330) at term.c:564 cmp = 0x0 gstring = XIL(0) i = 0 src_end = 0x7ffff7f59430 buf = 0x555556241720 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>, "\377\377\377" nchars = 0 nbytes = 0 required = 5 tlen = 0 tbase = 0x0 charset_list = XIL(0x7fffea1f684b) #1 0x00005555556beef1 in tty_write_glyphs (f=0x555556113798, string=0x7ffff7f59400, len=94) at term.c:773 face_id = 11 conversion_buffer = 0x555556241b10 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times> coding = 0x55555615e330 n = 1 stringlen = 1 tty = 0x55555615e5a0 #2 0x00005555556c8ca3 in write_glyphs (f=0x555556113798, string=0x7ffff7f58290, len=94) at terminal.c:163 #3 0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089 obody = 0x0 nbody = 0x7ffff7f58290 op1 = 0x7ffff174d858 <_IO_new_file_sync+184> op2 = 0x55555611bd50 np1 = 0x3d60 nend = 0x7ffff7f5a000 tem = 0 osp = 2 nsp = 1444253696 begmatch = 21845 endmatch = -17056 olen = 0 nlen = 94 current_matrix = 0x55555611bfc0 desired_matrix = 0x55555611bd50 current_row = 0x555556125e20 desired_row = 0x555556123410 must_write_whole_line_p = true write_spaces_p = false colored_spaces_p = false #4 0x000055555559f1fc in update_frame_1 (f=0x555556113798, force_p=true, inhibit_id_p=false, set_cursor_p=true, updating_menu_p=false) at dispnew.c:4787 current_matrix = 0x55555611bfc0 desired_matrix = 0x55555611bd50 i = 24 pause_p = 85 preempt_count = 17 #5 0x000055555559b03c in update_frame (f=0x555556113798, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3246 paused_p = false root_window = 0x555556590430 #6 0x00005555555f72d6 in redisplay_internal () at xdisp.c:16023 gcscrollbars = true f_redisplay_flag = true f = 0x555556113798 w = 0x555556113a00 sw = 0x555556113a00 fr = 0x555556113798 pending = false must_finish = true match_p = true tlbufpos = { charpos = 18373, bytepos = 18400 } tlendpos = { charpos = 850, bytepos = 850 } number_of_visible_frames = 1 count = 3 sf = 0x555556113798 polling_stopped_here = true tail = XIL(0x555556118ce3) frame = XIL(0x55555611379d) hscroll_retries = 0 garbaged_frame_retries = 0 consider_all_windows_p = true update_miniwindow_p = true #7 0x00005555555f4a20 in redisplay () at xdisp.c:15159 #8 0x0000555555738185 in read_char (commandflag=1, map=XIL(0x555556db2b63), prev_event=XIL(0), used_mouse_menu=0x7fffffffd56d, end_time=0x0) at keyboard.c:2497 echo_current = false c = XIL(0) jmpcount = 140737488343824 local_getcjmp = {{ __jmpbuf = {0, 0, 0, 93825003909856, 140737488344000, 93824995092361, 140737488344144, 93825003909856}, __mask_was_saved = 0, __saved_mask = { __val = {0, 140737488344032, 93824995092445, 140737121655267, 2478421848, 140737488344144, 93824995140529, 93825017785299, 3, 140737488344112, 0, 140737488344144, 938 25003909856, 0, 0, 140737488344144} } }} save_jump = {{ __jmpbuf = {140737488344176, 0, 140737488344304, 93824994352582, 0, 48, 140737488344656, 35328}, __mask_was_saved = 35328, __saved_mask = { __val = {93825003945184, 140737488344256, 93824994326029, 93825017785299, 93825003945184, 35328, 35328, 140737488344288, 0, 0, 93825003909856, 140737488344336, 938249 94182452, 93825004550040, 93825003909856, 0} } }} tem = XIL(0x555556744190) save = make_fixnum(23456248737754) previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555556160fc0 #9 0x000055555574b8e8 in read_key_sequence (keybuf=0x7fffffffd750, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9546 interrupted_kboard = 0x555556160fc0 interrupted_frame = 0x555556113798 key = XIL(0x47c5) used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = XIL(0x7fffffffd698) count = 3 t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x555556db2b63) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x5555561178a3), map = XIL(0x5555561178a3), start = 0, end = 0 } keytran = { parent = XIL(0x7fffea245b23), map = XIL(0x7fffea245b23), start = 0, end = 0 } indec = { parent = XIL(0x555556117893), map = XIL(0x555556117893), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 dummyflag = false starting_buffer = 0x555556744190 fake_prefixed_keys = XIL(0) first_event = XIL(0) second_event = XIL(0) #10 0x000055555573447d in command_loop_1 () at keyboard.c:1354 cmd = XIL(0x92bca0) keybuf = {make_fixnum(13), make_fixnum(84), XIL(0x55555633fa53), XIL(0), XIL(0), XIL(0x5555560772e0), XIL(0x7fffffffd7b0), XIL(0), XIL(0), XIL(0x5555560772e0), XIL(0x7fffffffd7d0) , XIL(0x55555580e789), XIL(0x7fffffffd7d0), XIL(0x5555560772e0), XIL(0), XIL(0), XIL(0x7fffffffd7f0), XIL(0x55555580e7dd), XIL(0), XIL(0x5633fa53), XIL(0x7fffffffd830), XIL(0x55555 5813d08), XIL(0x100000000), XIL(0x90), XIL(0), XIL(0x55555615c000), XIL(0x7fffffffd850), make_fixnum(0), XIL(0x7fffffffd860), XIL(0x555555813c11)} i = 1 prev_modiff = 8325 prev_buffer = 0x555556744190 already_adjusted = false #11 0x00005555558137cc in internal_condition_case (bfun=0x555555733fe3 <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557335af <cmd_error>) at eval.c:1359 val = XIL(0x555556118043) c = 0x55555615c000 #12 0x0000555555733bca in command_loop_2 (ignore=XIL(0)) at keyboard.c:1095 val = make_fixnum(0) #13 0x0000555555812c26 in internal_catch (tag=XIL(0xd740), func=0x555555733b9d <command_loop_2>, arg=XIL(0)) at eval.c:1120 val = XIL(0x555555730588) c = 0x55555615ced0 #14 0x0000555555733b68 in command_loop () at keyboard.c:1074 #15 0x0000555555733096 in recursive_edit_1 () at keyboard.c:718 count = 1 val = XIL(0x7fffffffd990) #16 0x000055555573328e in Frecursive_edit () at keyboard.c:790 count = 0 buffer = XIL(0) #17 0x000055555572f02b in main (argc=3, argv=0x7fffffffdbb8) at emacs.c:2047 stack_bottom_variable = 0x20 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = 0x0 skip_args = 1 temacs = 0x0 attempt_load_pdump = true rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = 0x0 sockfd = -1 module_assertions = false Lisp Backtrace: "redisplay_internal (C function)" (0x0) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 18:27 ` Amin Bandali @ 2020-11-08 18:54 ` Eli Zaretskii 2020-11-08 19:20 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-08 18:54 UTC (permalink / raw) To: Amin Bandali; +Cc: eric, 44506 > From: Amin Bandali <bandali@gnu.org> > Cc: Eric Abrahamsen <eric@ericabrahamsen.net>, 44506@debbugs.gnu.org > Date: Sun, 08 Nov 2020 13:27:04 -0500 > > Please find attached the result of `bt full' from an unoptimized build. Thanks. > #0 0x00005555556be41e in encode_terminal_code (src=0x7ffff7f59400, src_len=1, coding=0x55555615e330) at term.c:564 > cmp = 0x0 > gstring = XIL(0) > i = 0 > src_end = 0x7ffff7f59430 > buf = 0x555556241720 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times>, "\377\377\377" > nchars = 0 > nbytes = 0 > required = 5 > tlen = 0 > tbase = 0x0 > charset_list = XIL(0x7fffea1f684b) > #1 0x00005555556beef1 in tty_write_glyphs (f=0x555556113798, string=0x7ffff7f59400, len=94) at term.c:773 > face_id = 11 > conversion_buffer = 0x555556241b10 ' ' <repeats 78 times>, "John ،متسود یسر", '-' <repeats 55 times> > coding = 0x55555615e330 > n = 1 > stringlen = 1 > tty = 0x55555615e5a0 > #2 0x00005555556c8ca3 in write_glyphs (f=0x555556113798, string=0x7ffff7f58290, len=94) at terminal.c:163 > #3 0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089 Please show the output of these GDB commands: (gdb) source /path/to/emacs/src/.gdbinit (gdb) frame 0 (gdb) print *src (gdb) frame 3 (gdb) pgrowx desired_row (replace "/path/to/emacs/src" with the actual directory name of the Emacs's src directory). ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 18:54 ` Eli Zaretskii @ 2020-11-08 19:20 ` Eli Zaretskii 2020-11-08 20:39 ` Amin Bandali 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-08 19:20 UTC (permalink / raw) To: bandali; +Cc: eric, 44506 > Date: Sun, 08 Nov 2020 20:54:48 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org > > Please show the output of these GDB commands: > > (gdb) source /path/to/emacs/src/.gdbinit > (gdb) frame 0 > (gdb) print *src > (gdb) frame 3 > (gdb) pgrowx desired_row And one more: (gdb) print composition_table_size ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 19:20 ` Eli Zaretskii @ 2020-11-08 20:39 ` Amin Bandali 2020-11-09 3:31 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-08 20:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eric, 44506 [-- Attachment #1.1: Type: text/plain, Size: 478 bytes --] Eli Zaretskii writes: >> Date: Sun, 08 Nov 2020 20:54:48 +0200 >> From: Eli Zaretskii <eliz@gnu.org> >> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org >> >> Please show the output of these GDB commands: >> >> (gdb) source /path/to/emacs/src/.gdbinit >> (gdb) frame 0 >> (gdb) print *src >> (gdb) frame 3 >> (gdb) pgrowx desired_row > > And one more: > > (gdb) print composition_table_size > Please find the outputs attached. Thanks. [-- Attachment #1.2: requested-gdb-commands.txt --] [-- Type: text/plain, Size: 20447 bytes --] (gdb) source /home/bandali/s/emacs/src/.gdbinit SIGINT is used by the debugger. Are you sure you want to change it? (y or n) [answered Y; input not from terminal] Redefine command "xgetptr"? (y or n) [answered Y; input not from terminal] Redefine command "xgetint"? (y or n) [answered Y; input not from terminal] Redefine command "xgettype"? (y or n) [answered Y; input not from terminal] Redefine command "xgetsym"? (y or n) [answered Y; input not from terminal] Redefine command "xsymname"? (y or n) [answered Y; input not from terminal] Redefine command "pr"? (y or n) [answered Y; input not from terminal] Redefine command "pp"? (y or n) [answered Y; input not from terminal] Redefine command "pv"? (y or n) [answered Y; input not from terminal] Redefine command "xfmt"? (y or n) [answered Y; input not from terminal] Redefine command "ppt"? (y or n) [answered Y; input not from terminal] Redefine command "pitmethod"? (y or n) [answered Y; input not from terminal] Redefine command "pitx"? (y or n) [answered Y; input not from terminal] Redefine command "pit"? (y or n) [answered Y; input not from terminal] Redefine command "prowx"? (y or n) [answered Y; input not from terminal] Redefine command "prow"? (y or n) [answered Y; input not from terminal] Redefine command "pcursorx"? (y or n) [answered Y; input not from terminal] Redefine command "pcursor"? (y or n) [answered Y; input not from terminal] Redefine command "pwinx"? (y or n) [answered Y; input not from terminal] Redefine command "pwin"? (y or n) [answered Y; input not from terminal] Redefine command "pbiditype"? (y or n) [answered Y; input not from terminal] Redefine command "pgx"? (y or n) [answered Y; input not from terminal] Redefine command "pg"? (y or n) [answered Y; input not from terminal] Redefine command "pgi"? (y or n) [answered Y; input not from terminal] Redefine command "pgn"? (y or n) [answered Y; input not from terminal] Redefine command "pgrowx"? (y or n) [answered Y; input not from terminal] Redefine command "pgrow"? (y or n) [answered Y; input not from terminal] Redefine command "pgrowit"? (y or n) [answered Y; input not from terminal] Redefine command "prowlims"? (y or n) [answered Y; input not from terminal] Redefine command "pmtxrows"? (y or n) [answered Y; input not from terminal] Redefine command "xtype"? (y or n) [answered Y; input not from terminal] Redefine command "pvectype"? (y or n) [answered Y; input not from terminal] Redefine command "xvectype"? (y or n) [answered Y; input not from terminal] Redefine command "pvecsize"? (y or n) [answered Y; input not from terminal] Redefine command "xvecsize"? (y or n) [answered Y; input not from terminal] Redefine command "xint"? (y or n) [answered Y; input not from terminal] Redefine command "xptr"? (y or n) [answered Y; input not from terminal] Redefine command "xmarker"? (y or n) [answered Y; input not from terminal] Redefine command "xoverlay"? (y or n) [answered Y; input not from terminal] Redefine command "xsymbol"? (y or n) [answered Y; input not from terminal] Redefine command "xstring"? (y or n) [answered Y; input not from terminal] Redefine command "xvector"? (y or n) [answered Y; input not from terminal] Redefine command "xprocess"? (y or n) [answered Y; input not from terminal] Redefine command "xframe"? (y or n) [answered Y; input not from terminal] Redefine command "xcompiled"? (y or n) [answered Y; input not from terminal] Redefine command "xwindow"? (y or n) [answered Y; input not from terminal] Redefine command "xwinconfig"? (y or n) [answered Y; input not from terminal] Redefine command "xsubr"? (y or n) [answered Y; input not from terminal] Redefine command "xchartable"? (y or n) [answered Y; input not from terminal] Redefine command "xsubchartable"? (y or n) [answered Y; input not from terminal] Redefine command "xboolvector"? (y or n) [answered Y; input not from terminal] Redefine command "xbuffer"? (y or n) [answered Y; input not from terminal] Redefine command "xhashtable"? (y or n) [answered Y; input not from terminal] Redefine command "xcons"? (y or n) [answered Y; input not from terminal] Redefine command "nextcons"? (y or n) [answered Y; input not from terminal] Redefine command "xcar"? (y or n) [answered Y; input not from terminal] Redefine command "xcdr"? (y or n) [answered Y; input not from terminal] Redefine command "xlist"? (y or n) [answered Y; input not from terminal] Redefine command "xfloat"? (y or n) [answered Y; input not from terminal] Redefine command "xscrollbar"? (y or n) [answered Y; input not from terminal] Redefine command "xpr"? (y or n) [answered Y; input not from terminal] Redefine command "xprintstr"? (y or n) [answered Y; input not from terminal] Redefine command "xprintsym"? (y or n) [answered Y; input not from terminal] Redefine command "xcoding"? (y or n) [answered Y; input not from terminal] Redefine command "xcharset"? (y or n) [answered Y; input not from terminal] Redefine command "xfontset"? (y or n) [answered Y; input not from terminal] Redefine command "xfont"? (y or n) [answered Y; input not from terminal] Redefine command "xbacktrace"? (y or n) [answered Y; input not from terminal] Redefine command "xprintbytestr"? (y or n) [answered Y; input not from terminal] Redefine command "xwhichsymbols"? (y or n) [answered Y; input not from terminal] Redefine command "hookpost-backtrace"? (y or n) [answered Y; input not from terminal] Redefine command "ff"? (y or n) [answered Y; input not from terminal] DISPLAY = :0 TERM = xterm Breakpoint 3 at 0x55555572c75b: file emacs.c, line 377. Breakpoint 4 at 0x5555556f821e: file xterm.c, line 10151. (gdb) frame 0 #0 0x00005555556be4fb in encode_terminal_code (src=0x7ffff7f11670, src_len=1, coding=0x55555615e330) at term.c:564 (gdb) print *src $1 = { charpos = 490, object = XIL(0x5555567924e5), pixel_width = 1, ascent = 0, descent = 0, voffset = 0, type = 1, multibyte_p = true, left_box_line_p = false, right_box_line_p = false, overlaps_vertically_p = false, padding_p = false, glyph_not_available_p = false, avoid_cursor_p = false, resolved_level = 1, bidi_type = 2, face_id = 11, font_type = 0, slice = { img = { x = 0, y = 0, width = 0, height = 0 }, cmp = { from = 0, to = 0 }, glyphless = { upper_xoff = 0, upper_yoff = 0, lower_xoff = 0, lower_yoff = 0 } }, u = { ch = 124, cmp = { automatic = false, id = 62 }, img_id = 124, stretch = { height = 124, ascent = 0 }, glyphless = { method = 0, for_no_font = true, len = 15, ch = 0 }, val = 124 } } (gdb) frame 3 #3 0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=29, updating_menu_p=false) at dispnew.c:5089 (gdb) pgrowx desired_row TEXT: 252 glyphs 0 0: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 1 1: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 2 2: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 3 3: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 4 4: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 5 5: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 6 6: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 7 7: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 8 8: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 9 9: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 10 10: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 11 11: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 12 12: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 13 13: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 14 14: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 15 15: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 16 16: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 17 17: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 18 18: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 19 19: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 20 20: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 21 21: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 22 22: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 23 23: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 24 24: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 25 25: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 26 26: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 27 27: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 28 28: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 29 29: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 30 30: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 31 31: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 32 32: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 33 33: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 34 34: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 35 35: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 36 36: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 37 37: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 38 38: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 39 39: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 40 40: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 41 41: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 42 42: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 43 43: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 44 44: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 45 45: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 46 46: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 47 47: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 48 48: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 49 49: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 50 50: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 51 51: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 52 52: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 53 53: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 54 54: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 55 55: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 56 56: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 57 57: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 58 58: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 59 59: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 60 60: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 61 61: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 62 62: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 63 63: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 64 64: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 65 65: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 66 66: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 67 67: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 68 68: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 69 69: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 70 70: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 71 71: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 72 72: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 73 73: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 74 74: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 75 75: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 76 76: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 77 77: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 78 78: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 79 79: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 80 80: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 81 81: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 82 82: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 83 83: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 84 84: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 85 85: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 86 86: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 87 87: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 88 88: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 89 89: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 90 90: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 91 91: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 92 92: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 93 93: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 94 94: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 95 95: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 96 96: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 97 97: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 98 98: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 99 99: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 100 100: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 101 101: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 102 102: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 103 103: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 104 104: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 105 105: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 106 106: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 107 107: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 108 108: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 109 109: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 110 110: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 111 111: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 112 112: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 113 113: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 114 114: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 115 115: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 116 116: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 117 117: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 118 118: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 119 119: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 120 120: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 121 121: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 122 122: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 123 123: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 124 124: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 125 125: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 126 126: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 127 127: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 128 128: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 129 129: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 130 130: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 131 131: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 132 132: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 133 133: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 134 134: CHAR[ ] pos=0 blev=1,btyp=B w=1 a+d=0+0 MB 135 135: CHAR[J] pos=502 blev=2,btyp=L w=1 a+d=0+0 MB 136 136: CHAR[o] pos=503 blev=2,btyp=L w=1 a+d=0+0 MB 137 137: CHAR[h] pos=504 blev=2,btyp=L w=1 a+d=0+0 MB 138 138: CHAR[n] pos=505 blev=2,btyp=L w=1 a+d=0+0 MB 139 139: CHAR[ ] pos=501 blev=1,btyp=R w=1 a+d=0+0 MB 140 140: COMP[1 (5..5)] pos=500 w=1 a+d=0+0 MB 141 141: COMP[1 (4..4)] pos=499 w=1 a+d=0+0 MB 142 142: COMP[1 (3..3)] pos=498 w=1 a+d=0+0 MB 143 143: COMP[1 (2..2)] pos=497 w=1 a+d=0+0 MB 144 144: COMP[1 (1..1)] pos=496 w=1 a+d=0+0 MB 145 145: COMP[1 (0..0)] pos=495 w=1 a+d=0+0 MB 146 146: CHAR[ ] pos=494 blev=1,btyp=R w=1 a+d=0+0 MB 147 147: COMP[0 (3..3)] pos=493 w=1 a+d=0+0 MB 148 148: COMP[0 (2..2)] pos=492 w=1 a+d=0+0 MB 149 149: COMP[0 (1..1)] pos=491 w=1 a+d=0+0 MB 150 150: COMP[62 (0..0)] pos=490 w=1 a+d=0+0 face=11 MB 151 151: CHAR[ ] pos=-1 blev=0,btyp=B w=1 a+d=0+0 MB 152 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 153 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 154 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 155 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 156 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 157 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 158 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 159 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 160 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 161 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 162 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 163 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 164 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 165 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 166 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 167 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 168 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 169 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 170 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 171 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 172 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 173 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 174 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 175 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 176 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 177 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 178 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 179 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 180 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 181 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 182 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 183 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 184 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 185 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 186 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 187 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 188 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 189 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 190 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 191 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 192 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 193 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 194 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 195 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 196 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 197 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 198 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 199 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 200 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 201 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 202 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 203 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 204 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 205 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 206 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 207 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 208 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 209 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 210 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 211 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 212 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 213 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 214 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 215 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 216 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 217 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 218 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 219 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 220 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 221 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 222 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 223 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 224 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 225 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 226 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 227 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 228 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 229 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 230 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 231 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 232 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 233 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 234 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 235 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 236 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 237 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 238 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 239 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 240 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 241 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 242 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 243 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 244 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 245 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 246 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 247 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 248 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 249 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 250 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 251 152: CHAR[ ] pos=-1 blev=0,btyp=UNDEF w=0 a+d=0+0 (gdb) print composition_table_size $2 = 0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-08 20:39 ` Amin Bandali @ 2020-11-09 3:31 ` Eli Zaretskii 2020-11-09 4:43 ` Amin Bandali 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-09 3:31 UTC (permalink / raw) To: Amin Bandali; +Cc: eric, 44506 > From: Amin Bandali <bandali@gnu.org> > Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org > Date: Sun, 08 Nov 2020 15:39:56 -0500 > > >> (gdb) source /path/to/emacs/src/.gdbinit > >> (gdb) frame 0 > >> (gdb) print *src > >> (gdb) frame 3 > >> (gdb) pgrowx desired_row > > > > And one more: > > > > (gdb) print composition_table_size > > > > Please find the outputs attached. Thanks. One more thing, and then I need to think how this could happen: (gdb) frame 3 (gdb) print (desired_row->glyphs[1])[149] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-09 3:31 ` Eli Zaretskii @ 2020-11-09 4:43 ` Amin Bandali 2020-11-09 7:04 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-09 4:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eric, 44506 [-- Attachment #1: Type: text/plain, Size: 1288 bytes --] Eli Zaretskii writes: [...] > > Thanks. One more thing, and then I need to think how this could > happen: > > (gdb) frame 3 #3 0x00005555555a000c in update_frame_line (f=0x555556113798, vpos=24, updating_menu_p=false) at dispnew.c:5089 > > (gdb) print (desired_row->glyphs[1])[149] > $1 = { charpos = -1, object = XIL(0), pixel_width = 0, ascent = 0, descent = 0, voffset = 0, type = 0, multibyte_p = false, left_box_line_p = false, right_box_line_p = false, overlaps_vertically_p = false, padding_p = false, glyph_not_available_p = false, avoid_cursor_p = false, resolved_level = 0, bidi_type = 0, face_id = 0, font_type = 0, slice = { img = { x = 0, y = 0, width = 0, height = 0 }, cmp = { from = 0, to = 0 }, glyphless = { upper_xoff = 0, upper_yoff = 0, lower_xoff = 0, lower_yoff = 0 } }, u = { ch = 32, cmp = { automatic = false, id = 16 }, img_id = 32, stretch = { height = 32, ascent = 0 }, glyphless = { method = 0, for_no_font = false, len = 4, ch = 0 }, val = 32 } } Thanks. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-09 4:43 ` Amin Bandali @ 2020-11-09 7:04 ` Eli Zaretskii 2020-11-09 15:57 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-09 7:04 UTC (permalink / raw) To: Amin Bandali; +Cc: eric, 44506 On November 9, 2020 6:43:59 AM GMT+02:00, Amin Bandali <bandali@gnu.org> wrote: > Eli Zaretskii writes: > > [...] > > > > Thanks. One more thing, and then I need to think how this could > > happen: > > > > (gdb) frame 3 > > #3 0x00005555555a000c in update_frame_line (f=0x555556113798, > vpos=24, updating_menu_p=false) at dispnew.c:5089 > > > > > (gdb) print (desired_row->glyphs[1])[149] > > > > $1 = { > charpos = -1, > object = XIL(0), > pixel_width = 0, > ascent = 0, > descent = 0, > voffset = 0, > type = 0, > multibyte_p = false, > left_box_line_p = false, > right_box_line_p = false, > overlaps_vertically_p = false, > padding_p = false, > glyph_not_available_p = false, > avoid_cursor_p = false, > resolved_level = 0, > bidi_type = 0, > face_id = 0, > font_type = 0, > slice = { > img = { > x = 0, > y = 0, > width = 0, > height = 0 > }, > cmp = { > from = 0, > to = 0 > }, > glyphless = { > upper_xoff = 0, > upper_yoff = 0, > lower_xoff = 0, > lower_yoff = 0 > } > }, > u = { > ch = 32, > cmp = { > automatic = false, > id = 16 > }, > img_id = 32, > stretch = { > height = 32, > ascent = 0 > }, > glyphless = { > method = 0, > for_no_font = false, > len = 4, > ch = 0 > }, > val = 32 > } > } > > > Thanks. Thanks, but this seems to be from a different GDB session? The vpos is 24 instead of 29 and the data of the glyph structure clearly differs from what pgrowx displayed in your previous report? I need consistent and coherent data from the same crash. Or maybe you can come up with a reproduction recipe ? That'd really make the debugging much more efficient... ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-09 7:04 ` Eli Zaretskii @ 2020-11-09 15:57 ` Eli Zaretskii 2020-11-10 5:42 ` Amin Bandali 2020-11-10 5:48 ` Eric Abrahamsen 0 siblings, 2 replies; 22+ messages in thread From: Eli Zaretskii @ 2020-11-09 15:57 UTC (permalink / raw) To: bandali; +Cc: eric, 44506 > Date: Mon, 09 Nov 2020 09:04:58 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org > > Thanks, but this seems to be from a different GDB session? The vpos is 24 instead of 29 and the data of the glyph structure clearly differs from what pgrowx displayed in your previous report? I need consistent and coherent data from the same crash. > > Or maybe you can come up with a reproduction recipe ? That'd really make the debugging much more efficient... Alternatively, if you can give me an ssh login on that system, and set up an account for me so that I could reproduce the problem, I could debug it remotely on your system. ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-09 15:57 ` Eli Zaretskii @ 2020-11-10 5:42 ` Amin Bandali 2020-11-10 5:48 ` Eric Abrahamsen 1 sibling, 0 replies; 22+ messages in thread From: Amin Bandali @ 2020-11-10 5:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eric, 44506 [-- Attachment #1: Type: text/plain, Size: 1241 bytes --] Eli Zaretskii writes: >> Date: Mon, 09 Nov 2020 09:04:58 +0200 >> From: Eli Zaretskii <eliz@gnu.org> >> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org >> >> Thanks, but this seems to be from a different GDB session? The vpos >> is 24 instead of 29 and the data of the glyph structure clearly >> differs from what pgrowx displayed in your previous report? I need >> consistent and coherent data from the same crash. >> >> Or maybe you can come up with a reproduction recipe ? That'd really >> make the debugging much more efficient... > > Alternatively, if you can give me an ssh login on that system, and set > up an account for me so that I could reproduce the problem, I could > debug it remotely on your system. > Sure, I think that would indeed be easiest. Can you please email me off-list a copy of your ssh public key? Alternatively, I could try grabbing the one from fencepost; whichever way you prefer. I did a debug build of Emacs on one of my servers, and will add a minimal Gnus configuration to connect to a temporary account on my mail server, where you would find a copy of the message. I will send you more details about it off-list once I've finished setting it up. Thanks, amin [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-09 15:57 ` Eli Zaretskii 2020-11-10 5:42 ` Amin Bandali @ 2020-11-10 5:48 ` Eric Abrahamsen 2020-11-10 15:31 ` Eli Zaretskii 1 sibling, 1 reply; 22+ messages in thread From: Eric Abrahamsen @ 2020-11-10 5:48 UTC (permalink / raw) To: Eli Zaretskii; +Cc: bandali, 44506 Eli Zaretskii <eliz@gnu.org> writes: >> Date: Mon, 09 Nov 2020 09:04:58 +0200 >> From: Eli Zaretskii <eliz@gnu.org> >> Cc: eric@ericabrahamsen.net, 44506@debbugs.gnu.org >> >> Thanks, but this seems to be from a different GDB session? The vpos >> is 24 instead of 29 and the data of the glyph structure clearly >> differs from what pgrowx displayed in your previous report? I need >> consistent and coherent data from the same crash. >> >> Or maybe you can come up with a reproduction recipe ? That'd really >> make the debugging much more efficient... > > Alternatively, if you can give me an ssh login on that system, and set > up an account for me so that I could reproduce the problem, I could > debug it remotely on your system. I've tried today to come up with a recipe that doesn't involve installing EBDB, but so far have failed. I tried edebugging the various message-displaying functions to see exactly what was causing the bug, but got no segfault so long as the functions were instrumented. Basically EBDB attaches a hook to `gnus-article-prepare-hook', which uses `gnus-fetch-original-field' to pull some data out of the article, looks for records that match that data, and displays the records. With "emacs -Q" there are no records to search or display, so I assumed it must be the header-access functions causing the problem. But I wrote a function that does most of what EBDB does, without actually using EBDB, and it caused no segfault, so I don't know what's going on there, sorry. Eric ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-10 5:48 ` Eric Abrahamsen @ 2020-11-10 15:31 ` Eli Zaretskii 2020-11-13 5:20 ` Amin Bandali 0 siblings, 1 reply; 22+ messages in thread From: Eli Zaretskii @ 2020-11-10 15:31 UTC (permalink / raw) To: Eric Abrahamsen; +Cc: bandali, 44506 > From: Eric Abrahamsen <eric@ericabrahamsen.net> > Cc: bandali@gnu.org, 44506@debbugs.gnu.org > Date: Mon, 09 Nov 2020 21:48:10 -0800 > > I've tried today to come up with a recipe that doesn't involve > installing EBDB, but so far have failed. I tried edebugging the various > message-displaying functions to see exactly what was causing the bug, > but got no segfault so long as the functions were instrumented. > > Basically EBDB attaches a hook to `gnus-article-prepare-hook', which > uses `gnus-fetch-original-field' to pull some data out of the article, > looks for records that match that data, and displays the records. > > With "emacs -Q" there are no records to search or display, so I assumed > it must be the header-access functions causing the problem. But I wrote > a function that does most of what EBDB does, without actually using > EBDB, and it caused no segfault, so I don't know what's going on there, > sorry. Thank you for your efforts. ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-10 15:31 ` Eli Zaretskii @ 2020-11-13 5:20 ` Amin Bandali 2020-11-14 12:14 ` Eli Zaretskii 0 siblings, 1 reply; 22+ messages in thread From: Amin Bandali @ 2020-11-13 5:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Eric Abrahamsen, 44506 [-- Attachment #1: Type: text/plain, Size: 1280 bytes --] Eli Zaretskii writes: >> From: Eric Abrahamsen <eric@ericabrahamsen.net> >> Cc: bandali@gnu.org, 44506@debbugs.gnu.org >> Date: Mon, 09 Nov 2020 21:48:10 -0800 >> >> I've tried today to come up with a recipe that doesn't involve >> installing EBDB, but so far have failed. I tried edebugging the various >> message-displaying functions to see exactly what was causing the bug, >> but got no segfault so long as the functions were instrumented. >> >> Basically EBDB attaches a hook to `gnus-article-prepare-hook', which >> uses `gnus-fetch-original-field' to pull some data out of the article, >> looks for records that match that data, and displays the records. >> >> With "emacs -Q" there are no records to search or display, so I assumed >> it must be the header-access functions causing the problem. But I wrote >> a function that does most of what EBDB does, without actually using >> EBDB, and it caused no segfault, so I don't know what's going on there, >> sorry. > > Thank you for your efforts. > I, too, would like to say thank you, both to Eli and Eric, for your efforts and looking into this. I just sent information to Eli off-list for accessing a test account I set up on a server of mine for debugging this issue. Thanks again. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-13 5:20 ` Amin Bandali @ 2020-11-14 12:14 ` Eli Zaretskii 2020-11-14 17:19 ` Amin Bandali 2022-04-22 13:38 ` Lars Ingebrigtsen 0 siblings, 2 replies; 22+ messages in thread From: Eli Zaretskii @ 2020-11-14 12:14 UTC (permalink / raw) To: Amin Bandali; +Cc: eric, 44506 > From: Amin Bandali <bandali@gnu.org> > Cc: Eric Abrahamsen <eric@ericabrahamsen.net>, 44506@debbugs.gnu.org > Date: Fri, 13 Nov 2020 00:20:16 -0500 > > >> With "emacs -Q" there are no records to search or display, so I assumed > >> it must be the header-access functions causing the problem. But I wrote > >> a function that does most of what EBDB does, without actually using > >> EBDB, and it caused no segfault, so I don't know what's going on there, > >> sorry. > > > > Thank you for your efforts. > > I, too, would like to say thank you, both to Eli and Eric, for your > efforts and looking into this. I just sent information to Eli off-list > for accessing a test account I set up on a server of mine for debugging > this issue. FTR, it is very easy to reproduce the problem, no need for Gnus or EBDB. Here's the recipe: emacs -Q -nw C-x 3 C-x b foo Now type some R2L character. For example, turn on the Arabic input method and press 'a'. You will see that the character does not appear on display. Basically, on a TTY frame, the first character of a R2L line in a window that is not the rightmost one is not shown: it is overwritten by the vertical-border character '|' we display between the two adjacent windows. This doesn't crash as long as the overwritten glyph is of a character, but in the case in point that glyph came from a composition, and then all hell breaks loose... This is a regression introduced in Emacs 27.1, by the code that supports display-fill-column-indicator-mode. I have now fixed it on the emacs-27 branch. Many thanks to Amin for giving me access to a system where this could be easily reproduced. ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-14 12:14 ` Eli Zaretskii @ 2020-11-14 17:19 ` Amin Bandali 2022-04-22 13:38 ` Lars Ingebrigtsen 1 sibling, 0 replies; 22+ messages in thread From: Amin Bandali @ 2020-11-14 17:19 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eric, 44506 [-- Attachment #1: Type: text/plain, Size: 1264 bytes --] Eli Zaretskii writes: [...] > > FTR, it is very easy to reproduce the problem, no need for Gnus or > EBDB. Here's the recipe: > > emacs -Q -nw > C-x 3 > C-x b foo > > Now type some R2L character. For example, turn on the Arabic input > method and press 'a'. You will see that the character does not appear > on display. Basically, on a TTY frame, the first character of a R2L > line in a window that is not the rightmost one is not shown: it is > overwritten by the vertical-border character '|' we display between > the two adjacent windows. This doesn't crash as long as the > overwritten glyph is of a character, but in the case in point that > glyph came from a composition, and then all hell breaks loose... > > This is a regression introduced in Emacs 27.1, by the code that > supports display-fill-column-indicator-mode. I have now fixed it on > the emacs-27 branch. That is one subtle bug!! > Many thanks to Amin for giving me access to a system where this could > be easily reproduced. You're most welcome, and many thanks to you Eli for looking into this, debugging, and fixing it. Also many thanks to Eric for looking into the EBDB side of things and reproducing the issue. Thank you both very much for your help with this. Best amin [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 857 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-14 12:14 ` Eli Zaretskii 2020-11-14 17:19 ` Amin Bandali @ 2022-04-22 13:38 ` Lars Ingebrigtsen 1 sibling, 0 replies; 22+ messages in thread From: Lars Ingebrigtsen @ 2022-04-22 13:38 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eric, Amin Bandali, 44506 Eli Zaretskii <eliz@gnu.org> writes: > This is a regression introduced in Emacs 27.1, by the code that > supports display-fill-column-indicator-mode. I have now fixed it on > the emacs-27 branch. Reading this thread, it looks like the bug was fixed at the time, but the bug report was left open, so I'm closing it now. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 22+ messages in thread
* bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty 2020-11-07 20:29 ` Eli Zaretskii 2020-11-08 4:03 ` Eric Abrahamsen @ 2020-11-08 4:05 ` Eric Abrahamsen 1 sibling, 0 replies; 22+ messages in thread From: Eric Abrahamsen @ 2020-11-08 4:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Amin Bandali, 44506 On 11/07/20 22:29 PM, Eli Zaretskii wrote: >> From: Amin Bandali <bandali@gnu.org> >> Cc: 44506@debbugs.gnu.org, Eric Abrahamsen <eric@ericabrahamsen.net> >> Date: Sat, 07 Nov 2020 15:03:53 -0500 >> >> After some bisecting of my config files, I narrowed the segaulting of >> Gnus when opening that message down to inclusion of (require 'ebdb-gnus) >> in my configs. ebdb-gnus is part of EBDB, available on GNU ELPA. I'm >> Cc'ing Eric, EBDB's creator and maintainer, in case he might have any >> ideas. > > I don't see anything in EBDB that could cause Emacs to use static > compositions, but maybe I'm missing something. FWIW I was able to reproduce the segfault in terminal (not in GUI). I don't know what static compositions are, but the places where EBDB messes with lower-level character stuff are pasted below. As you can see it's pretty ad-hoc stuff. There's also ebdb-i18n.el, but that mostly just involves looking up the scripts of characters in `char-script-table'. (defconst ebdb-char-fold-table (eval-when-compile (let ((tbl (make-char-table 'char-fold-table)) (uni (unicode-property-table-internal 'decomposition)) ;; Lowercase and uppercase alphabet. (target-seq (append (number-sequence 65 90) (number-sequence 97 122)))) ;; I don't understand what's happening here, but it's necessary. (let ((func (char-table-extra-slot uni 1))) (map-char-table (lambda (char v) (when (consp char) (funcall func (car char) v uni))) uni)) ;; Create lists of equivalent chars, keyed to the most basic ;; ascii letter. (map-char-table (lambda (char decomp) (when (consp decomp) (when (symbolp (car decomp)) (setq decomp (cdr decomp))) (when (memq (car decomp) target-seq) (aset tbl (car decomp) (cons char (aref tbl (car decomp))))))) uni) ;; Then turn the lists into regexps. (map-char-table (lambda (char dec-list) (let ((re (regexp-opt (cons (char-to-string char) (mapcar #'string dec-list))))) (aset tbl char re))) tbl) tbl)) "Char-table holding regexps used in char fold searches. Keys are characters in the upper- and lower-case ascii ranges. Values are a regexp matching all characters that decompose to the key character.") (defun ebdb-char-fold-to-regexp (string) "A highly simplified version of `char-fold-to-regexp'. Only converts characters in STRING that decompose to the range [a-zA-Z]." (let ((out nil) (end (length string)) char (i 0)) (while (< i end) (setq char (aref string i)) (push (or (aref ebdb-char-fold-table char) (string char)) out) (cl-incf i)) (setq out (apply #'concat (nreverse out))) (if (> (length out) 5000) (regexp-quote string) out))) ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2022-04-22 13:38 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-11-07 18:39 bug#44506: 28.0.50; Segfault on opening a particular message in Gnus in terminal/tty Amin Bandali 2020-11-07 18:58 ` Eli Zaretskii 2020-11-07 20:03 ` Amin Bandali 2020-11-07 20:29 ` Eli Zaretskii 2020-11-08 4:03 ` Eric Abrahamsen 2020-11-08 14:56 ` Eli Zaretskii 2020-11-08 18:27 ` Amin Bandali 2020-11-08 18:54 ` Eli Zaretskii 2020-11-08 19:20 ` Eli Zaretskii 2020-11-08 20:39 ` Amin Bandali 2020-11-09 3:31 ` Eli Zaretskii 2020-11-09 4:43 ` Amin Bandali 2020-11-09 7:04 ` Eli Zaretskii 2020-11-09 15:57 ` Eli Zaretskii 2020-11-10 5:42 ` Amin Bandali 2020-11-10 5:48 ` Eric Abrahamsen 2020-11-10 15:31 ` Eli Zaretskii 2020-11-13 5:20 ` Amin Bandali 2020-11-14 12:14 ` Eli Zaretskii 2020-11-14 17:19 ` Amin Bandali 2022-04-22 13:38 ` Lars Ingebrigtsen 2020-11-08 4:05 ` Eric Abrahamsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).