Sublime Forum

Segfault when browsing files

#1

Hi. Recently sublimetext was crashing while opening js files in the sidebar or scrolling down in other js files. I searched but couldn’t find others with similar issues.
What happened was I had installed js-beautify and using that to prettify js files. Opening them caused sublime to crash.

build 4192
ubuntu 22.04.5

> subl --multiinstance --debug --safe-mode

...snip...
[362191:362191:20250402,230945.577452:ERROR elf_dynamic_array_reader.h:64] tag not found
[362191:362191:20250402,230945.577967:ERROR elf_dynamic_array_reader.h:64] tag not found
[362191:362192:20250402,230945.581697:ERROR directory_reader_posix.cc:42] opendir /home/s/.cache/sublime-text/Crash Reports/attachments/5110e7a3-eb4f-4be4-af80-36475ba86e18: No such file or directory (2)
Segmentation fault
> gdb --args /opt/sublime_text/sublime_text --multiinstance --debug

...snip...
[Thread 0x7fffea000640 (LWP 395382) exited]
[New Thread 0x7fffea000640 (LWP 395773)]
[Thread 0x7fffea000640 (LWP 395773) exited]

Thread 1 "sublime_text" received signal SIGSEGV, Segmentation fault.
0x0000555555e1ea40 in ?? ()
(gdb) bt
#0  0x0000555555e1ea40 in  ()
#1  0x0000555555e30b82 in  ()
#2  0x0000555555cba438 in  ()
#3  0x000055555596a726 in  ()
#4  0x000055555596a7c4 in  ()
#5  0x000055555595ce53 in  ()
#6  0x0000555555975ae1 in  ()
#7  0x00005555559769e9 in  ()
#8  0x000055555597ec1d in  ()
#9  0x0000555555b2df6f in  ()
#10 0x0000555555b2dfce in  ()
#11 0x00007ffff7e47c44 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff7e9d2b8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff7e472b3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff4c48d2d in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so
#15 0x0000555555b359e9 in  ()
#16 0x000055555593acb2 in  ()
#17 0x00007ffff7829d90 in __libc_start_call_main (main=main@entry=0x555555937900, argc=argc@entry=3, argv=argv@entry=0x7fffffffdd88) at ../sysdeps/nptl/libc_start_call_main.h:58
#18 0x00007ffff7829e40 in __libc_start_main_impl (main=0x555555937900, argc=3, argv=0x7fffffffdd88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdd78) at ../csu/libc-start.c:392
#19 0x00005555558b9389 in  ()
> strace -r subl --multiinstance --debug

...snip...
     0.000142 gettid()                  = 400515
     0.000029 gettid()                  = 400515
     0.000124 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 1
     0.000055 futex(0x7a6984bca000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
     0.000027 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 1
     0.000035 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000052 futex(0x7a6984bc4000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
     0.000033 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000162 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 1
     0.000038 futex(0x7a6984bca000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
     0.000023 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000110 write(7, "\1\0\0\0\0\0\0\0", 8) = 8
     0.000028 futex(0x7a698afd5780, FUTEX_WAKE_PRIVATE, 1) = 1
     0.000021 futex(0x7a69755740a0, FUTEX_WAKE_PRIVATE, 1) = 1
     0.000020 futex(0x7a698ae40258, FUTEX_WAKE_PRIVATE, 1) = 1
     0.000030 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
     0.000029 writev(3, [{iov_base="*\2\3\0\4\0\300\5\4h\37\2\22\0\7\0\4\0\300\5w\1\0\0\6\0\0\0 \1\235\1"..., iov_len=56}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 56
     0.000033 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="#\203\204\17\22\0\0\0\n\0\3\0\6h\37\2\3\0\0\2\345\3\0\0\3\0\300\5\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 208
     0.000033 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
     0.000026 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=13, events=POLLIN}], 5, 0) = 1 ([{fd=10, revents=POLLIN}])
     0.000036 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
     0.000025 write(4, "\1\0\0\0\0\0\0\0", 8) = 8
     0.000023 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000021 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000112 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 1
     0.000038 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 0
     0.000026 futex(0x7a6984bcc000, FUTEX_WAKE, 1) = 1
     0.000047 futex(0x7a6984bca000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
     0.000120 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000051 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000051 futex(0x7a6984bc4000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
     0.002145 futex(0x7a6984bc6000, FUTEX_WAKE, 1) = 1
     0.000089 futex(0x7a6984bc4000, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
     0.032547 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7a69675fffe8} ---
     0.000037 gettid()                  = 400515
     0.000025 prctl(PR_GET_DUMPABLE)    = 1 (SUID_DUMP_USER)
     0.000025 prctl(PR_SET_PTRACER, 400520) = 0
     0.000024 rt_sigprocmask(SIG_BLOCK, [CONT], [SEGV], 8) = 0
     0.000034 sendmsg(12, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\0\0\340\362\274\204iz\0\0\10\326\3\203iz\0\0\0\0\0\0\0\0\0\0"..., iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 40
     0.000037 rt_sigtimedwait([CONT], [400520:400520:20250402,235045.732310:ERROR scoped_ptrace_attach.cc:27] ptrace: Operation not permitted (1)
{si_signo=SIGCONT, si_code=SI_TKILL, si_pid=400520, si_uid=1000}, {tv_sec=5, tv_nsec=0}, 8) = 18 (SIGCONT)
     0.000282 rt_sigprocmask(SIG_SETMASK, [SEGV], NULL, 8) = 0
     0.000024 futex(0x7a698303d628, FUTEX_WAKE_PRIVATE, 2147483647) = 0
     0.000024 rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7a698b242520}, NULL, 8) = 0
     0.000025 getpid()                  = 400515
     0.000021 gettid()                  = 400515
     0.000021 rt_tgsigqueueinfo(400515, 400515, SIGSEGV, {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7a69675fffe8}) = 0
     0.000025 rt_sigreturn({mask=[]})   = 134592904760240
     0.000025 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7a69675fffe8} ---
     0.029948 +++ killed by SIGSEGV +++
Segmentation fault

workaround:

  1. Disable all javascript packages
  2. open affected js files
  3. select all. reindent
  4. Enable javascript packages.
  5. set syntax: javascript and use HTML-CSS-JS Prettify from package control to beautify

I’ve since uninstalled js-beautify. Perhaps the parsing was conflicting with sublime.

Posting this here in case it helps someone, though I might be the only one with this issue :sweat_smile:

have a good weekend all :slightly_smiling_face:

2 Likes