Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

rls thread 'request-worker-0' has overflowed its stack #1733

Open
eesekaj opened this issue May 4, 2021 · 1 comment
Open

rls thread 'request-worker-0' has overflowed its stack #1733

eesekaj opened this issue May 4, 2021 · 1 comment

Comments

@eesekaj
Copy link

eesekaj commented May 4, 2021

Hello.
For some reason when I started to introduce the code from the pull requests which contains a lot of "extern C, and FFI and raw pointers" into my project, the RLS started crashing on both VSCodium on Debian and on OSX. I made some research and found out that there is some "intolerance" when there is type mismatch for extern C or C-structs or something similar, because at some point, somehow I was able to fix it, but later it started crashing again. Now, when I am starting VSCodium, RLS starts normally and as soon as I am trying to modify something in the code, it crashes.

The project which causing RLS to crash is https://gitlab.com/relkom/logdaemon and the exact file which started causing problems is ./src/portable/timer.rs.

The code in the repo is a read only mirror for other devs which do not have access to private repo, so sometimes the code may not compile from master branch, so please use this snapshot https://gitlab.com/relkom/logdaemon/-/tree/310d7397665c8f8e3adc45b6cdc83220d03d9b00/

Info:
VSCodium plugins:
Rust 0.7.8
CodeLLDB 1.6.0
rls 1.41.0 (3bd7215 2021-02-09)
rustc 1.51.0 (2fd73fabe 2021-03-23)

    capabilities: ServerCapabilities {  
        text_document_sync: Some(  
            Kind(
                Incremental,
            ),
        ),
        selection_range_provider: None,
        hover_provider: Some(
            true,
        ),
        completion_provider: Some(
            CompletionOptions {
                resolve_provider: Some(
                    true,
                ),
                trigger_characters: Some(
                    [
                        ".",
                        ":",
                    ],
                ),
            },
        ),
        signature_help_provider: None,
        definition_provider: Some(
            true,
        ),
        type_definition_provider: None,
        implementation_provider: Some(
            Simple(
                true,
            ),
        ),
        references_provider: Some(
            true,
        ),
        document_highlight_provider: Some(
            true,
        ),
        document_symbol_provider: Some(
            true,
        ),
        workspace_symbol_provider: Some(
            true,
        ),
        code_action_provider: Some(
            Simple(
                true,
            ),
        ),
        code_lens_provider: Some(
            CodeLensOptions {
                resolve_provider: Some(
                    false,
                ),
            },
        ),
        document_formatting_provider: Some(
            true,
        ),
        document_range_formatting_provider: Some(
            false,
        ),
        document_on_type_formatting_provider: None,
        rename_provider: Some(
            Simple(
                true,
            ),
        ),
        color_provider: None,
        folding_range_provider: None,
        execute_command_provider: Some(
            ExecuteCommandOptions {
                commands: [
                    "rls.applySuggestion-19327",
                    "rls.deglobImports-19327",
                ],
            },
        ),
        workspace: None,
    },
}```
@yihuaf
Copy link

yihuaf commented Jul 29, 2021

I am running into the same issue today, and am just introduced code with some extern "C".

    extern "C" fn main(data: *mut libc::c_void) -> libc::c_int {
        unsafe { Box::from_raw(data as *mut CloneCb)() as i32 }

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants