Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StackOverflowError from VS Code extension telemetry #520

Closed
davidanthoff opened this issue Dec 18, 2024 · 2 comments
Closed

StackOverflowError from VS Code extension telemetry #520

davidanthoff opened this issue Dec 18, 2024 · 2 comments

Comments

@davidanthoff
Copy link
Contributor

davidanthoff commented Dec 18, 2024

Here is the stack trace, and this is for JuliaSyntax v 0.4.10, running on Julia 1.11.1.

Salsa.SalsaWrappedException{StackOverflowError}:
   at parse_atom(ps::JuliaSyntax.ParseState, check_identifiers::Bool) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3413)
   at parse_atom (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3414)
   at parse_unary_prefix(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1453)
   at parse_call(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1414)
   at parse_factor(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1362)
   at parse_unary(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1187)
   at parse_juxtapose(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1110)
   at parse_where(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_juxtapose)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1099)
   at parse_unary_subtype(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1062)
   at parse_LtoR(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_unary_subtype), is_op::typeof(JuliaSyntax.is_prec_bitshift)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:373)
   at parse_shift(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1031)
   at parse_LtoR(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_shift), is_op::typeof(JuliaSyntax.is_prec_rational)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:373)
   at parse_rational(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1025)
   at parse_with_chains(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_rational), is_op::typeof(JuliaSyntax.is_prec_times), chain_ops::Tuple{JuliaSyntax.Kind}) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:979)
   at parse_term(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:971)
   at parse_with_chains(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_term), is_op::typeof(JuliaSyntax.is_prec_plus), chain_ops::Tuple{JuliaSyntax.Kind, JuliaSyntax.Kind}) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:979)
   at parse_expr(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:964)
   at parse_invalid_ops(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:949)
   at parse_range(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:859)
   at parse_LtoR(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_range), is_op::typeof(JuliaSyntax.is_prec_pipe_gt)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:373)
   at parse_pipe_gt(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:846)
   at parse_RtoL(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_pipe_gt), is_op::typeof(JuliaSyntax.is_prec_pipe_lt), self::typeof(JuliaSyntax.parse_pipe_lt)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:388)
   at parse_pipe_lt(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:839)
   at parse_comparison(ps::JuliaSyntax.ParseState, subtype_comparison::Bool) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:797)
   at parse_comparison(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:789)
   at parse_lazy_cond(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_comparison), is_op::typeof(JuliaSyntax.is_prec_lazy_and), self::typeof(JuliaSyntax.parse_and)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:754)
   at parse_and(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:782)
   at parse_lazy_cond(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_and), is_op::typeof(JuliaSyntax.is_prec_lazy_or), self::typeof(JuliaSyntax.parse_or)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:754)
   at parse_or(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:773)
   at parse_arrow(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:730)
   at parse_cond(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:668)
   at parse_RtoL(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_cond), is_op::typeof(JuliaSyntax.is_prec_pair), self::typeof(JuliaSyntax.parse_pair)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:388)
   at parse_pair(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:659)
   at parse_assignment (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:595)
   at parse_eq_star(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:586)
   at parse_brackets(after_parse::JuliaSyntax.var"#87#88"{Bool}, ps::JuliaSyntax.ParseState, closing_kind::JuliaSyntax.Kind) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3134)
   at parse_paren(ps::JuliaSyntax.ParseState, check_identifiers::Bool) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3044)
   at parse_atom(ps::JuliaSyntax.ParseState, check_identifiers::Bool) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3571)
   at parse_atom (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:3414)
   at parse_unary_prefix(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1453)
   at parse_call(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:1414)
   at parse_assignment(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_comma)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:595)
   at parse_assignment_with_initial_ex(ps::JuliaSyntax.ParseState, mark::JuliaSyntax.ParseStreamPosition, down::typeof(JuliaSyntax.parse_comma)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:625)
   at parse_assignment(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_comma)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:596)
   at parse_eq(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:572)
   at parse_docstring(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_eq)) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:531)
   at parse_docstring (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:530)
   at parse_public(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:523)
   at parse_Nary(ps::JuliaSyntax.ParseState, down::typeof(JuliaSyntax.parse_public), delimiters::Tuple{JuliaSyntax.Kind}, closing_tokens::Tuple{JuliaSyntax.Kind}) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:418)
   at parse_stmts(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:491)
   at parse_toplevel(ps::JuliaSyntax.ParseState) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser.jl:456)
   at parse!(stream::JuliaSyntax.ParseStream; rule::Symbol) (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser_api.jl:49)
   at parse! (./julialang.language-julia-1.127.2/scripts/packages/JuliaSyntax/src/parser_api.jl:42)
   at var"%%__user_derived_julia_parse_result"(rt::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI) (./julialang.language-julia-1.127.2/scripts/packages/JuliaWorkspaces/src/layer_syntax_trees.jl:7)
   at _memoized_lookup_internal(runtime::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_julia_parse_result), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/default_storage.jl:257)
   at memoized_lookup(rt::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, dependency_key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_julia_parse_result), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:694)
   at memoized_lookup_unwrapped (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:721)
   at derived_julia_parse_result (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:641)
   at var"%%__user_derived_julia_syntax_diagnostics"(rt::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI) (./julialang.language-julia-1.127.2/scripts/packages/JuliaWorkspaces/src/layer_syntax_trees.jl:20)
   at _memoized_lookup_internal(runtime::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_julia_syntax_diagnostics), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/default_storage.jl:257)
   at memoized_lookup(rt::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, dependency_key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_julia_syntax_diagnostics), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:694)
   at memoized_lookup_unwrapped (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:721)
   at derived_julia_syntax_diagnostics (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:641)
   at var"%%__user_derived_diagnostics"(rt::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI) (./julialang.language-julia-1.127.2/scripts/packages/JuliaWorkspaces/src/layer_diagnostics.jl:56)
   at _memoized_lookup_internal(runtime::Salsa._TracingRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_diagnostics), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/default_storage.jl:257)
   at memoized_lookup(rt::Salsa._TopLevelRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, dependency_key::Salsa.DerivedKey{typeof(JuliaWorkspaces.derived_diagnostics), Tuple{JuliaWorkspaces.URIs2.URI}}) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:694)
   at memoized_lookup_unwrapped (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:721)
   at derived_diagnostics(rt::Salsa._TopLevelRuntime{Salsa.EmptyContext, Salsa._DefaultSalsaStorage.DefaultStorage}, uri::JuliaWorkspaces.URIs2.URI) (./julialang.language-julia-1.127.2/scripts/packages/Salsa/src/Salsa.jl:641)
   at get_diagnostic(jw::JuliaWorkspaces.JuliaWorkspace, uri::JuliaWorkspaces.URIs2.URI) (./julialang.language-julia-1.127.2/scripts/packages/JuliaWorkspaces/src/public.jl:120)
   at publish_diagnostics(uris::Vector{JuliaWorkspaces.URIs2.URI}, server::LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, source::String) (./julialang.language-julia-1.127.2/scripts/packages/LanguageServer/src/requests/textdocument.jl:436)
   at initialized_notification(params::LanguageServer.InitializedParams, server::LanguageServerInstance, conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}) (./julialang.language-julia-1.127.2/scripts/packages/LanguageServer/src/requests/init.jl:292)
   at (::LanguageServer.var"#108#109"{typeof(LanguageServer.initialized_notification), LanguageServerInstance})(conn::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, params::LanguageServer.InitializedParams) (./julialang.language-julia-1.127.2/scripts/packages/LanguageServer/src/languageserverinstance.jl:307)
   at dispatch_msg(x::JSONRPC.JSONRPCEndpoint{Base.PipeEndpoint, Base.PipeEndpoint}, dispatcher::JSONRPC.MsgDispatcher, msg::Dict{String, Any}) (./julialang.language-julia-1.127.2/scripts/packages/JSONRPC/src/typed.jl:67)
   at run(server::LanguageServerInstance; timings::Vector{Any}) (./julialang.language-julia-1.127.2/scripts/packages/LanguageServer/src/languageserverinstance.jl:444)
   at run(server::LanguageServerInstance) (./julialang.language-julia-1.127.2/scripts/packages/LanguageServer/src/languageserverinstance.jl:317)
   at top-level scope (./julialang.language-julia-1.127.2/scripts/languageserver/main.jl:189)
   at eval (boot.jl:430)
   at include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) (loading.jl:2643)
   at _include(mapexpr::Function, mod::Module, _path::String) (loading.jl:2703)
   at include(mod::Module, _path::String) (Base.jl:557)
   at exec_options(opts::Base.JLOptions) (client.jl:323)
   at _start() (client.jl:531)

We don't have more information, i.e. in particular we don't have the code that triggers that, as we don't send that as part of crash report due to privacy concerns...

We have quite a bit more crash reports with StackOverflowError errors from JuliaSyntax, but maybe we try to start with this one?

@c42f
Copy link
Member

c42f commented Dec 22, 2024

I guess it's probably this issue:

#368

@davidanthoff
Copy link
Contributor Author

Yes, closing this here as a duplicate.

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

No branches or pull requests

2 participants