This repository was archived by the owner on Dec 29, 2022. It is now read-only.
-
Couldn't load subscription status.
- Fork 254
This repository was archived by the owner on Dec 29, 2022. It is now read-only.
rls-preview 1.31.6 (daa138c 2018-11-20) eats CPU after trying to display docs of dns_parser::Packet #1168
Copy link
Copy link
Closed
Description
- Started from vscode
- Linux x86_64
- At least partially works (vscode shows errors, but does not shows type tooltips)
- Two threads keeping CPU core busy, 80%-90% each;
strace -cfshows 100% offutexsyscall- Suspending one busy thread with
strace -cp 15925,^Zmakes the other busy thread go 100% CPU. Resuming the thread restores 90%/90% behaviour - Restarting vscode makes it sane again (and it also starts showing types of vars). But after enough time (or maybe after suspending and resuming the system) it gets into loop again.
- Deliberately making short suspends-to-ram, freezing vscode (and RLS) in freezer cgroup, suspending RLS with strace does not trigger the bug.
- There likely was similar behaviour in some previous version (not specific to 1.31.6)
gdb backtraces. Offending tasks are 15924 and 15925:
Thread 7 (Thread 0x398457fb700 (LWP 15925)):
#0 0x000003984c5ddd68 in core::iter::iterator::Iterator::eq::hc2cedccfbc82ddce () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/libcore/iter/iterator.rs:2431
#1 0x000003984c5f57d4 in _$LT$std..path..Path$u20$as$u20$core..cmp..PartialEq$GT$::eq::hc7dc1d81e3b6e448 () at libstd/path.rs:2537
#2 0x000002dbce33dc46 in _$LT$std..collections..hash..map..HashMap$LT$K$C$$u20$V$C$$u20$S$GT$$GT$::contains_key::h2bfd8deeb635d066 ()
#3 0x000002dbce2579b8 in _$LT$rls_vfs..Vfs$LT$U$GT$$GT$::load_line::h2f64d772d89ed3bd ()
#4 0x000002dbce23b0bd in rls::actions::hover::def_docs::h13b114159e6e6575 ()
#5 0x000002dbce244115 in rls::actions::hover::tooltip::h69272304854f8ddc ()
#6 0x000002dbce2ffeff in rls::actions::requests::_$LT$impl$u20$rls..server..dispatch..RequestAction$u20$for$u20$languageserver_types..request..HoverRequest$GT$::handle::ha79ec4e5da6d3f37 ()
#7 0x000002dbce3870f8 in std::panicking::try::do_call::hb9197d3b30db31f4 ()
#8 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#9 0x000002dbce24e30a in _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h7b2340e6162a2836 ()
#10 0x000002dbce385449 in std::panicking::try::do_call::h1dc67713ef8096c2 ()
#11 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#12 0x000002dbce47a04c in _$LT$rayon_core..job..HeapJob$LT$BODY$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::hc3dcc58709f81d21 ()
#13 0x000002dbce65e252 in rayon_core::registry::WorkerThread::wait_until_cold::h2f55f04110d90c50 ()
#14 0x000002dbce65e7ac in rayon_core::registry::main_loop::h06824fc0f9168779 ()
#15 0x000002dbce65ee9c in std::panicking::try::do_call::ha75319634d549e93 ()
#16 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#17 0x000002dbce6616a0 in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h43ab17919d4fa067 ()
#18 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#19 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#20 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#21 0x000003984c381494 in start_thread (arg=0x398457fb700) at pthread_create.c:333
#22 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 6 (Thread 0x398459fc700 (LWP 15924)):
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x000003984c383b95 in __GI___pthread_mutex_lock (mutex=0x39847a14180) at ../nptl/pthread_mutex_lock.c:80
#2 0x000002dbce257957 in _$LT$rls_vfs..Vfs$LT$U$GT$$GT$::load_line::h2f64d772d89ed3bd ()
#3 0x000002dbce23b0bd in rls::actions::hover::def_docs::h13b114159e6e6575 ()
#4 0x000002dbce244115 in rls::actions::hover::tooltip::h69272304854f8ddc ()
#5 0x000002dbce2ffeff in rls::actions::requests::_$LT$impl$u20$rls..server..dispatch..RequestAction$u20$for$u20$languageserver_types..request..HoverRequest$GT$::handle::ha79ec4e5da6d3f37 ()
#6 0x000002dbce3870f8 in std::panicking::try::do_call::hb9197d3b30db31f4 ()
#7 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#8 0x000002dbce24e30a in _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h7b2340e6162a2836 ()
#9 0x000002dbce385449 in std::panicking::try::do_call::h1dc67713ef8096c2 ()
#10 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#11 0x000002dbce47a04c in _$LT$rayon_core..job..HeapJob$LT$BODY$GT$$u20$as$u20$rayon_core..job..Job$GT$::execute::hc3dcc58709f81d21 ()
#12 0x000002dbce65e252 in rayon_core::registry::WorkerThread::wait_until_cold::h2f55f04110d90c50 ()
#13 0x000002dbce65e7ac in rayon_core::registry::main_loop::h06824fc0f9168779 ()
#14 0x000002dbce65ee9c in std::panicking::try::do_call::ha75319634d549e93 ()
#15 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#16 0x000002dbce6616a0 in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h43ab17919d4fa067 ()
#17 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#18 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#19 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#20 0x000003984c381494 in start_thread (arg=0x398459fc700) at pthread_create.c:333
#21 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 5 (Thread 0x39845bfd700 (LWP 15923)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000002dbce660618 in rayon_core::sleep::Sleep::sleep::h2ea60f5311023292 ()
#2 0x000002dbce65e2b6 in rayon_core::registry::WorkerThread::wait_until_cold::h2f55f04110d90c50 ()
#3 0x000002dbce65e7ac in rayon_core::registry::main_loop::h06824fc0f9168779 ()
#4 0x000002dbce65ee9c in std::panicking::try::do_call::ha75319634d549e93 ()
#5 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#6 0x000002dbce6616a0 in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h43ab17919d4fa067 ()
#7 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#8 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#9 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#10 0x000003984c381494 in start_thread (arg=0x39845bfd700) at pthread_create.c:333
#11 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 4 (Thread 0x39845dfe700 (LWP 15922)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000002dbce660618 in rayon_core::sleep::Sleep::sleep::h2ea60f5311023292 ()
#2 0x000002dbce65e2b6 in rayon_core::registry::WorkerThread::wait_until_cold::h2f55f04110d90c50 ()
#3 0x000002dbce65e7ac in rayon_core::registry::main_loop::h06824fc0f9168779 ()
#4 0x000002dbce65ee9c in std::panicking::try::do_call::ha75319634d549e93 ()
#5 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#6 0x000002dbce6616a0 in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h43ab17919d4fa067 ()
#7 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#8 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#9 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#10 0x000003984c381494 in start_thread (arg=0x39845dfe700) at pthread_create.c:333
#11 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 3 (Thread 0x39846dff700 (LWP 15910)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000003984c5e1443 in std::sys::unix::condvar::Condvar::wait::h958f4c885c9e5fc9 () at libstd/sys/unix/condvar.rs:80
#2 std::sys_common::condvar::Condvar::wait::hbc4b5ebd0fa6fc5b () at libstd/sys_common/condvar.rs:51
#3 std::sync::condvar::Condvar::wait::h163cdebbfb1e053c () at libstd/sync/condvar.rs:214
#4 std::thread::park::h25fc68b3ff1d634e () at libstd/thread/mod.rs:885
#5 0x000002dbce2fed28 in rls::actions::post_build::AnalysisQueue::run_worker_thread::h85a2aa6e9a05d588 ()
#6 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#7 0x000002dbce26f71c in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h55b25bd3d891a558 ()
#8 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#9 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#10 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#11 0x000003984c381494 in start_thread (arg=0x39846dff700) at pthread_create.c:333
#12 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 2 (Thread 0x398475ff700 (LWP 15909)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000003984c5e1443 in std::sys::unix::condvar::Condvar::wait::h958f4c885c9e5fc9 () at libstd/sys/unix/condvar.rs:80
#2 std::sys_common::condvar::Condvar::wait::hbc4b5ebd0fa6fc5b () at libstd/sys_common/condvar.rs:51
#3 std::sync::condvar::Condvar::wait::h163cdebbfb1e053c () at libstd/sync/condvar.rs:214
#4 std::thread::park::h25fc68b3ff1d634e () at libstd/thread/mod.rs:885
#5 0x000003984c5f71c2 in std::sync::mpsc::blocking::WaitToken::wait::h02ece181b2afd3cc () at libstd/sync/mpsc/blocking.rs:81
#6 0x000002dbce2a3248 in _$LT$std..sync..mpsc..stream..Packet$LT$T$GT$$GT$::recv::hb3f460c47785a246 ()
#7 0x000002dbce28faac in _$LT$std..sync..mpsc..Receiver$LT$T$GT$$GT$::recv::h55ca0a1927f3225f ()
#8 0x000002dbce460b2b in std::sys_common::backtrace::__rust_begin_short_backtrace::h3d6dd6c3fe9d5c56 ()
#9 0x000002dbce38731c in std::panicking::try::do_call::hfdf302870ca7e601 ()
#10 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#11 0x000002dbce26fa90 in _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h785cc80c1bc9ac5a ()
#12 0x000003984c60eb9e in _$LT$alloc..boxed..Box$LT$$LP$dyn$u20$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$RP$$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h52d5504f9cb0c28e () at /rustc/f1e2fa8f0469aac1ea69dd5b6164e1d198d57934/src/liballoc/boxed.rs:683
#13 std::sys_common::thread::start_thread::h81bc49633d84e83c () at libstd/sys_common/thread.rs:24
#14 std::sys::unix::thread::Thread::new::thread_start::h67a7fa39818a2df2 () at libstd/sys/unix/thread.rs:90
#15 0x000003984c381494 in start_thread (arg=0x398475ff700) at pthread_create.c:333
#16 0x000003984baa0acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Thread 1 (Thread 0x3984fe1e500 (LWP 15904)):
#0 0x000003984c38a20d in read () at ../sysdeps/unix/syscall-template.S:84
#1 0x000003984c5e71da in std::sys::unix::fd::FileDesc::read::h0e525f5ff4c8dbdd () at libstd/sys/unix/fd.rs:58
#2 std::sys::unix::stdio::Stdin::read::h3687b6c479fb0ec1 () at libstd/sys/unix/stdio.rs:24
#3 _$LT$std..io..stdio..StdinRaw$u20$as$u20$std..io..Read$GT$::read::hcefedc5cfe4799d1 () at libstd/io/stdio.rs:77
#4 _$LT$std..io..stdio..Maybe$LT$R$GT$$u20$as$u20$std..io..Read$GT$::read::hf51925d77fde14b2 () at libstd/io/stdio.rs:117
#5 _$LT$std..io..buffered..BufReader$LT$R$GT$$u20$as$u20$std..io..BufRead$GT$::fill_buf::h651928408272b17c () at libstd/io/buffered.rs:263
#6 0x000003984c5e9730 in _$LT$std..io..stdio..StdinLock$LT$$u27$a$GT$$u20$as$u20$std..io..BufRead$GT$::fill_buf::hf1fbb3b2b1c1315c () at libstd/io/stdio.rs:322
#7 0x000002dbce4619a1 in std::io::append_to_string::hf379efbf3d52044b ()
#8 0x000002dbce3a7208 in _$LT$rls..server..io..StdioMsgReader$u20$as$u20$rls..server..io..MessageReader$GT$::read_message::hf97431c1f948e350 ()
#9 0x000002dbce2cae96 in rls::server::run_server::h317de4c9c266c7fd ()
#10 0x000002dbce31d80b in rls::main_inner::h71b4e763df559d48 ()
#11 0x000002dbce31d3c6 in rls::main::ha5dbf170c2f87676 ()
#12 0x000002dbce461d83 in std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h9a69c7dae1a05548 ()
#13 0x000003984c5fe713 in std::rt::lang_start_internal::_$u7b$$u7b$closure$u7d$$u7d$::hb2df683d76b6042c () at libstd/rt.rs:59
#14 std::panicking::try::do_call::h704d683257f21b11 () at libstd/panicking.rs:310
#15 0x000003984c61c04a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:102
#16 0x000003984c5ff1a4 in std::panicking::try::h4c398df1e7e480f7 () at libstd/panicking.rs:289
#17 std::panic::catch_unwind::ha04160cccfef810e () at libstd/panic.rs:398
#18 std::rt::lang_start_internal::hb07e8289ccfeb1cc () at libstd/rt.rs:58
#19 0x000002dbce327225 in main ()
Metadata
Metadata
Assignees
Labels
No labels