JuliaPy / JuliaPy/PythonCall.jl

On PythonCall load, UndefRefError: access to undefined reference

Open
#765 6 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Julia
Stars
1.1k
Forks
86
Avg merge
1d 22h
Merged PRs (30d)
3

Description

**Affects:** PythonCall

**Describe the bug**

https://github.com/JuliaIO/PyTensorStore.jl/actions/runs/24747323082/job/72507767012?pr=3

```
ERROR: LoadError: InitError: UndefRefError: access to undefined reference
Stacktrace:
[1] _pyjl_new(t::Ptr{PythonCall.C.PyObject}, ::Ptr{PythonCall.C.PyObject}, ::Ptr{PythonCall.C.PyObject})
@ PythonCall.JlWrap.Cjl ~/.julia/packages/PythonCall/83z4q/src/JlWrap/C.jl:24
[2] PyObject_CallObject
@ ~/.julia/packages/PythonCall/83z4q/src/C/pointers.jl:300 [inlined]
[3] PyJuliaValue_New
@ ~/.julia/packages/PythonCall/83z4q/src/JlWrap/C.jl:392 [inlined]
[4] macro expansion
@ ~/.julia/packages/PythonCall/83z4q/src/Core/Py.jl:118 [inlined]
[5] pyjl(t::PythonCall.Py, v::Module)
@ PythonCall.JlWrap ~/.julia/packages/PythonCall/83z4q/src/JlWrap/base.jl:7
[6] pyjl
@ ~/.julia/packages/PythonCall/83z4q/src/JlWrap/any.jl:400 [inlined]
[7] Py
@ ~/.julia/packages/PythonCall/83z4q/src/JlWrap/base.jl:141 [inlined]
[8] macro expansion
@ ~/.julia/packages/PythonCall/83z4q/src/Core/Py.jl:117 [inlined]
[9] pysetattr
@ ~/.julia/packages/PythonCall/83z4q/src/Core/builtins.jl:78 [inlined]
[10] setproperty!(x::PythonCall.Py, k::Symbol, v::Module)
@ PythonCall.Core ~/.julia/packages/PythonCall/83z4q/src/Core/Py.jl:281
[11] __init__()
@ PythonCall.JlWrap ~/.julia/packages/PythonCall/83z4q/src/JlWrap/JlWrap.jl:70
[12] run_module_init(mod::Module, i::Int64)
@ Base ./loading.jl:1445
[13] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
@ Base ./loading.jl:1433
[14] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}; register::Bool)
@ Base ./loading.jl:1321
[15] _include_from_serialized
@ ./loading.jl:1276 [inlined]
[16] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
@ Base ./loading.jl:2117
[17] _require_search_from_serialized
@ ./loading.jl:2011 [inlined]
[18] __require_prelocked(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:2629
[19] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2495
[20] macro expansion
@ ./loading.jl:2423 [inlined]
[21] macro expansion
@ ./lock.jl:376 [inlined]
[22] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2388
[23] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2364
[24] top-level scope
@ ~/work/PyTensorStore.jl/PyTensorStore.jl/src/PyTensorStore.jl:3
[25] include(mod::Module, _path::String)
@ Base ./Base.jl:306
[26] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
@ Base ./loading.jl:3028
[27] top-level scope
@ stdin:5
[28] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[29] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2874
[30] include_string
@ ./loading.jl:2884 [inlined]
[31] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:315
[32] _start()
@ Base ./client.jl:550
during initialization of module JlWrap
in expression starting at /home/runner/work/PyTensorStore.jl/PyTensorStore.jl/src/PyTensorStore.jl:1
```

**Your system**
Please provide detailed information about your system:

Ubuntu Linux (Github Linux runner)
Julia 1.12.6
Python 3.14.4
PythonCall v0.9.31

**Additional context**
Add any other context about the problem here.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by rerunning the linked GitHub Actions job on Ubuntu with Julia 1.12.6, Python 3.14.4, and PythonCall v0.9.31. Read PyTensorStore.jl/src/PyTensorStore.jl alongside the stack-trace locations in PythonCall's JlWrap/C.jl, C/pointers.jl, and JlWrap/JlWrap.jl. Done means the package loads without the reported UndefRefError in that environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.