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

Segfault when loading PythonCall #1054

Open
josephsdavid opened this issue Apr 18, 2022 · 5 comments
Open

Segfault when loading PythonCall #1054

josephsdavid opened this issue Apr 18, 2022 · 5 comments
Labels

Comments

@josephsdavid
Copy link

I am working on a project where I need to use pythoncall, which seems to segfault the language server, causing it to not index any other nonlocal packages. Is there a way to work around this? Perhaps to ignore a certain package, so at least the other packages are indexed? Attached is some relevant info:

  • Client: Neovim 0.7 (latest stable release)
  • languageserver versions:
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
StaticLint = "b3cc710f-9c33-5bdb-a03d-a94903873e97"
SymbolServer = "cf896787-08d5-524d-9de7-132aaa0cb996"
julia_version = "1.7.2"
  • Error when indexing python call (truncated)
    message = '[ ...
[ Info: Will cache package PythonCall (6099a3de-0909-46bc-b1f4-468b9a2dfc0d)

signal (11): Segmentation fault: 11
in expression starting at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/server.jl:94
function_code_fastcall at /Users/djosephs/secretdirectory/project.jl/.CondaPkg/env/lib/libpython3.9.dylib (unknown line)
PyObject_CallObject at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/cpython/pointers.jl:297 [inlined]
macro expansion at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/Py.jl:131 [inlined]
pycallargs at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/abstract/object.jl:153 [inlined]
#pycall#57 at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/abstract/object.jl:171
pycall at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/abstract/object.jl:161 [inlined]
#_#11 at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/Py.jl:360 [inlined]
Py at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/Py.jl:360 [inlined]
getdoc at /Users/djosephs/.julia/packages/PythonCall/XgP8G/src/Py.jl:460
getdoc at ./docs/Docs.jl:271
_doc at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/utils.jl:186
#symbols#22 at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/symbols.jl:458
symbols##kw at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/symbols.jl:404 [inlined]
#symbols#22 at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/symbols.jl:463
symbols at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/symbols.jl:404
jl_apply_generic at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
top-level scope at /Users/djosephs/.julia/packages/SymbolServer/0mFCc/src/server.jl:117
jl_toplevel_eval_flex at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
jl_apply_generic at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_include at ./loading.jl:1253
include at ./Base.jl:418
jl_apply_generic at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
exec_options at ./client.jl:292
_start at ./client.jl:495
jfptr__start_41570 at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
true_main at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_repl_entrypoint at /Users/djosephs/.julia/juliaup/julia-1.7.2+0~x64/lib/julia/libjulia-internal.1.7.dylib (unknown line)
Allocations: 48556296 (Pool: 48541985; Big: 14311); GC: 60
@josephsdavid
Copy link
Author

josephsdavid commented Apr 18, 2022

I am new to julia and to julia open source etc, so any way I can help with diagnostics/making a clearer issue I am happy to do, for more info, in other projects where I am NOT using pythoncall, the language server works just fine! I am running it with the defaults described here

@pfitzseb
Copy link
Member

Hm, this shouldn't actually crash the LS, Will try to repro.

@pfitzseb pfitzseb added the bug label Apr 19, 2022
@josephsdavid
Copy link
Author

josephsdavid commented Apr 19, 2022

Thank you! Here is the dependencies/compat for the project:

[deps]
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"
Legolas = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd"
Lighthouse = "ac2c24cd-07f0-4848-96b2-1b82c3ea0e59"
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"

[compat]
CairoMakie = "0.7.0"
Legolas = "0.3.0"
Lighthouse = "0.14.0"
PythonCall = "0.8.0"
julia = "1.6"

And if you need the contents of the CondaPkg.toml file I can share as well (I doubt the julia lsp indexes that :) )

@josephsdavid
Copy link
Author

Hmm so I was able to resolve this issue actually just with a setting change, for others who may bump into this issue, here is my current config:

	julials = {
		settings = {
			julia = {
				symbolCacheDownload = false,
				lint = {
					missingrefs = "all",
					iter = true,
					lazy = true,
					modname = true,
				},
			},
		},
	},

It doesn't manage to index PythonCall, but all the other libraries in there it manages to index now, without a segfault!

@pfitzseb pfitzseb reopened this May 2, 2022
@pfitzseb
Copy link
Member

pfitzseb commented May 2, 2022

Glad that works for you. I'll reopen this so we don't forget about it -- something is wrong after all.

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

No branches or pull requests

2 participants