[vim/vim] Assertion failure in syn_id2attr() (Issue #19650)

1 view
Skip to first unread message

julio-b

unread,
12:44 AM (12 hours ago) 12:44 AM
to vim/vim, Subscribed
julio-b created an issue (vim/vim#19650)

Steps to reproduce

Vim crashed randomly today with assertion failure. The code that triggered this crash was merged recently in v9.2.0093 (98174ca)
These asserts were added in v9.1.1469 (9d065a4) as a safety check.
Unfortunately, I don't have a reproducer yet.

Expected behaviour

No crash

Version of Vim

v9.2.0140

Environment

Operating system: Arch Linux
Terminal: xterm
$TERM: xterm-256color
Shell: bash

Logs and stack traces

Reading symbols from /usr/bin/vim...
Reading symbols from /usr/lib/debug/usr/bin/vim.debug...
[New LWP 155807]
[New LWP 155814]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/vim PKGBUILD'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f566055f4db in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
120     T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f5660a96e80 (LWP 155807))]
-(gdb) bt
#0  0x00007f566055f4db in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
#1  0x0000557072104da5 in may_core_dump () at os_unix.c:3868
#2  may_core_dump () at os_unix.c:3863
#3  mch_exit (r=1) at os_unix.c:3834
#4  <signal handler called>
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#6  0x00007f56605b9af3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#7  0x00007f566055f1a0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007f56605465fe in __GI_abort () at abort.c:77
#9  0x00007f5660547697 in __libc_message_impl (vma_name=vma_name@entry=0x7f56606d0f7b "glibc: assert", fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:138
#10 0x00007f56605570b2 in __libc_message_wrapper (vmaname=0x7f56606d0f7b "glibc: assert", fmt=<optimized out>) at ../include/stdio.h:203
#11 __assert_fail (assertion=assertion@entry=0x55707229d805 "hl_id > 0", file=file@entry=0x55707229d7f9 "highlight.c", line=line@entry=4015,
    function=function@entry=0x5570722b39f0 <__PRETTY_FUNCTION__.4> "syn_id2attr") at assert.c:37
#12 0x0000557071f86366 in syn_id2attr (hl_id=<optimized out>) at highlight.c:4015
#13 syn_id2attr (hl_id=<optimized out>) at highlight.c:4008
#14 0x000055707207a3cd in set_highlight_attr (arr=arr@entry=0x5570a3ded5f0, len=len@entry=9536, update_ids=update_ids@entry=false) at highlight.c:5558
#15 0x000055707207b567 in push_highlight_overrides (arr=0x5570a3ded5f0, len=9536) at highlight.c:5598
#16 0x000055707216353b in draw_tabline () at screen.c:4702
#17 0x0000557071fe4c9d in update_screen (type_arg=type_arg@entry=0) at drawscreen.c:284
#18 0x000055707228c7be in main_loop (cmdwin=cmdwin@entry=0, noexmode=noexmode@entry=0) at main.c:1529
#19 0x000055707228d99c in vim_main2 () at main.c:979
#20 0x00007f56605486c1 in __libc_start_call_main (main=main@entry=0x557071f905d0 <main>, argc=argc@entry=2, argv=argv@entry=0x7ffd31896578) at ../sysdeps/nptl/libc_start_call_main.h:59
#21 0x00007f56605487f9 in __libc_start_main_impl (main=0x557071f905d0 <main>, argc=2, argv=0x7ffd31896578, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd31896568)
    at ../csu/libc-start.c:360
#22 0x0000557071f92345 in _start ()
-(gdb) f 12
#12 0x0000557071f86366 in syn_id2attr (hl_id=<optimized out>) at highlight.c:4015
4015        assert(hl_id > 0);
-(gdb) l
4010        int         attr;
4011        hl_group_T  *sgp;
4012
4013        hl_id = syn_get_final_id(hl_id);
4014        // shouldn't happen
4015        assert(hl_id > 0);
4016        sgp = &HL_TABLE()[hl_id - 1];           // index is ID minus one
4017
4018    #ifdef FEAT_GUI
4019        // Only use GUI attr when the GUI is being used.
-(gdb) f 16
#16 0x000055707216353b in draw_tabline () at screen.c:4702
4702                override_success = push_highlight_overrides(
-(gdb) l
4697            for (tp = first_tabpage; tp != NULL && col < Columns - 4;
4698                                                                 tp = tp->tp_next)
4699            {
4700                scol = col;
4701
4702                override_success = push_highlight_overrides(
4703                        tp->tp_curwin->w_hl, tp->tp_curwin->w_hl_len);
4704
4705                // Update them each time since highlight override might change them.
4706                attr_sel = HL_ATTR(HLF_TPS);
-(gdb)


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19650@github.com>

Foxe Chen

unread,
7:38 AM (5 hours ago) 7:38 AM
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#19650)

Yes I am aware of this crash (I have also been experiencing it as well). If I remember when I looked at the coredump, it seemed the crash was due to uninitialized values. However unfortunately I cannot find a reliable way to reproduce this :/ If you find a way to repro this please tell me. Thanks


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19650/4046050863@github.com>

Reply all
Reply to author
Forward
0 new messages