Skip to content

Segfault when indexing with SymbolServer #207

Closed
@rossviljoen

Description

@rossviljoen

Trying to index this package using SymbolServer.jl leads to a segfault (i.e. when using LanguageServer.jl).

The issue appears to lie in Base.Docs.getdoc(x::Py, @nospecialize(sig))

MWE:

julia> using SymbolServer
julia> using PythonCall
julia> env = SymbolServer.getenvtree()
julia> @time SymbolServer.symbols(env, PythonCall)
julia> versioninfo()
Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

julia> st
  ...
  [6099a3de] PythonCall v0.9.4
  [cf896787] SymbolServer v7.2.1
Full stacktrace
signal (11): Segmentation fault
in expression starting at REPL[5]:1
_Py_INCREF at /usr/local/src/conda/python-3.9.13/Include/object.h:408 [inlined]
function_code_fastcall at /usr/local/src/conda/python-3.9.13/Objects/call.c:327
PyObject_CallObject at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/cpython/pointers.jl:297 [inlined]
pycallargs at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/abstract/object.jl:210 [inlined]
#pycall#61 at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/abstract/object.jl:228
pycall at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/abstract/object.jl:218 [inlined]
#_#13 at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/Py.jl:358 [inlined]
Py at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/Py.jl:358 [inlined]
getdoc at /home/ross/prog/julia/packages/PythonCall/d8Xcl/src/Py.jl:458
_doc at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/utils.jl:194
#symbols#22 at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:458
symbols##kw at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:404 [inlined]
#symbols#22 at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:463
symbols at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:404 [inlined]
symbols at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:404 [inlined]
symbols at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:404 [inlined]
symbols at /home/ross/prog/julia/packages/SymbolServer/LMSFX/src/symbols.jl:404 [inlined]
top-level scope at ./timing.jl:220 [inlined]
top-level scope at ./REPL[5]:0
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:876
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150
repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:246
start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:231
#run_repl#47 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:364
run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:351
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#936 at ./client.jl:394
jfptr_YY.936_35454.clone_1 at /home/ross/prog/julia/juliaup/julia-1.7.3+0.x64/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
jl_f__call_latest at /buildworker/worker/package_linux64/build/src/builtins.c:757
#invokelatest#2 at ./essentials.jl:716 [inlined]
invokelatest at ./essentials.jl:714 [inlined]
run_main_repl at ./client.jl:379
exec_options at ./client.jl:309
_start at ./client.jl:495
jfptr__start_22567.clone_1 at /home/ross/prog/julia/juliaup/julia-1.7.3+0.x64/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559
jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701
main at /buildworker/worker/package_linux64/build/cli/loader_exe.c:42
unknown function (ip: 0x7f0c9822928f)
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /home/ross/prog/julia/juliaup/julia-1.7.3+0.x64/bin/julia (unknown line)
Allocations: 21011684 (Pool: 21003681; Big: 8003); GC: 25

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions