Skip to content

Segmentation fault on ARM Mac#680

@mhauru

Description

@mhauru

Affects: PythonCall

Describe the bug
A segmentation fault when trying to call a constructor from an imported Python package called harmonic, installed with CondaPkg.pip_add. The MWE seems to require having a project structure in place, I'm unable to reproduce this using a plain script. The issue is deterministically reproducible, see below.

The folder structure:

$ exa -a --tree . ├── CondaPkg.toml ├── Manifest.toml ├── Project.toml └── src └── MWE.jl 

Project.toml:

name = "MWE"uuid = "4995295b-c8e1-42cb-958b-a0cc4f73796a"authors = ["blahblah"] version = "0.0.1" [deps] CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" [compat] CondaPkg = "=0.2.33"PythonCall = "=0.9.28"

CondaPkg.toml:

[deps] python = "<3.11" [pip.deps] harmonic = ""

Manifest.toml:

Details
# This file is machine-generated - editing it directly is not advisedjulia_version = "1.11.7"manifest_format = "2.0"project_hash = "d300a4187a8eae5fe37abe7ac28c490260578e63" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"version = "1.1.2" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"version = "1.11.0" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"version = "1.11.0" [[deps.CondaPkg]] deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"] git-tree-sha1 = "bd491d55b97a036caae1d78729bdb70bf7dababc"uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"version = "0.2.33" [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe"uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"version = "1.16.0" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"version = "1.0.0" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"version = "1.11.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"version = "1.6.0" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"version = "1.11.0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"version = "1.11.0" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"uuid = "82899510-4779-5014-852e-03e436cf321d"version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2"uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"version = "1.7.1" [[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975"uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"version = "1.14.3" [deps.JSON3.extensions] JSON3ArrowExt = ["ArrowTypes"] [deps.JSON3.weakdeps] ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3"version = "1.11.0" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"version = "8.6.0+0" [[deps.LibGit2]] deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"version = "1.11.0" [[deps.LibGit2_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"version = "1.7.2+0" [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"version = "1.11.0+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"version = "1.11.0" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"version = "1.11.0" [[deps.MacroTools]] git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522"uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"version = "0.5.16" [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"version = "1.11.0" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"version = "2.28.6+0" [[deps.MicroMamba]] deps = ["Pkg", "Scratch", "micromamba_jll"] git-tree-sha1 = "011cab361eae7bcd7d278f0a7a00ff9c69000c51"uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea"version = "0.1.14" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804"version = "1.11.0" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159"version = "2023.12.12" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"version = "1.2.0" [[deps.OrderedCollections]] git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee"uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"version = "1.8.1" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810"uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"version = "2.8.3" [[deps.Pidfile]] deps = ["FileWatching", "Test"] git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03"uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307"version = "1.3.0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"version = "1.11.0" [deps.Pkg.extensions] REPLExt = "REPL" [deps.Pkg.weakdeps] REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f"uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] git-tree-sha1 = "0f27480397253da18fe2c12a4ba4eb9eb208bf3d"uuid = "21216c6a-2e73-6563-6e65-726566657250"version = "1.5.0" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"version = "1.11.0" [[deps.PythonCall]] deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "Serialization", "Tables", "UnsafePointers"] git-tree-sha1 = "34510e11cabd7964291f32f14d28b367e9960e6e"uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"version = "0.9.28" [deps.PythonCall.extensions] CategoricalArraysExt = "CategoricalArrays"PyCallExt = "PyCall" [deps.PythonCall.weakdeps] CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597"PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"version = "1.11.0" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"version = "0.7.0" [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109"uuid = "6c6a2e73-6563-6170-7368-637461726353"version = "1.3.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"version = "1.11.0" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8"uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"version = "1.11.0" [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"version = "1.0.3" [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39"uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344"uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"version = "1.12.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"version = "1.10.0" [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"version = "1.11.0" [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"version = "1.11.0" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"version = "1.11.0" [[deps.UnsafePointers]] git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a"uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39"version = "1.0.0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a"version = "1.2.13+1" [[deps.micromamba_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] git-tree-sha1 = "2ca2ac0b23a8e6b76752453e08428b3b4de28095"uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4"version = "1.5.12+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"version = "1.59.0+0" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"version = "17.4.0+2" [[deps.pixi_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] git-tree-sha1 = "f349584316617063160a947a82638f7611a8ef0f"uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed"version = "0.41.3+0"

src/MWE.jl:

module MWE using CondaPkg: CondaPkg using PythonCall: PythonCall const hm = PythonCall.pyimport("harmonic") function make(ndim) hm.Chains(ndim) returnnothingendend

To reproduce:

$ julia --project=. -e "using MWE; MWE.make(1)" CondaPkg Found dev dependencies: /private/tmp/condapkg/CondaPkg.toml CondaPkg Found dependencies: /Users/mhauru/.julia/packages/PythonCall/mkWc2/CondaPkg.toml CondaPkg Found dependencies: /Users/mhauru/.julia/packages/CondaPkg/0UqYV/CondaPkg.toml CondaPkg Resolving changes + harmonic (pip) + python + uv CondaPkg Initialising pixi │ /Users/mhauru/.julia/artifacts/d2fecc2a9fa3eac2108d3e4d9d155e6ff5dfd0b2/bin/pixi │ init │ --format pixi └ /private/tmp/condapkg/.CondaPkg ✔ Created /private/tmp/condapkg/.CondaPkg/pixi.toml CondaPkg Wrote /private/tmp/condapkg/.CondaPkg/pixi.toml │ [dependencies] │ uv = ">=0.4" │ │ [dependencies.python] │ channel = "conda-forge" │ build = "*cp*" │ version = "<3.11, >=3.9,<4" │ │ [project] │ name = ".CondaPkg" │ platforms = ["osx-arm64"] │ channels = ["conda-forge"] │ channel-priority = "strict" │ description = "automatically generated by CondaPkg.jl" │ │ [pypi-dependencies] └ harmonic = "*" CondaPkg Installing packages │ /Users/mhauru/.julia/artifacts/d2fecc2a9fa3eac2108d3e4d9d155e6ff5dfd0b2/bin/pixi │ install └ --manifest-path /private/tmp/condapkg/.CondaPkg/pixi.toml ✔ The default environment has been installed. [31978] signal 11 (2): Segmentation fault: 11 in expression starting at none:1 PyObject_GetAttr at /private/tmp/condapkg/.CondaPkg/.pixi/envs/default/lib/libpython3.10.dylib (unknown line) PyObject_GetAttr at /Users/mhauru/.julia/packages/PythonCall/mkWc2/src/C/pointers.jl:300 [inlined] macro expansion at /Users/mhauru/.julia/packages/PythonCall/mkWc2/src/Core/Py.jl:118 [inlined] pygetattr at /Users/mhauru/.julia/packages/PythonCall/mkWc2/src/Core/builtins.jl:58 getproperty at /Users/mhauru/.julia/packages/PythonCall/mkWc2/src/Core/Py.jl:250 [inlined] make at /private/tmp/condapkg/src/MWE.jl:9 unknown function (ip: 0x16d0480fb) jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/./julia.h:2157 [inlined] do_call at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/interpreter.c:126 eval_stmt_value at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/interpreter.c:174 eval_body at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/interpreter.c:666 jl_interpret_toplevel_thunk at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/interpreter.c:824 jl_toplevel_eval_flex at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/toplevel.c:943 jl_toplevel_eval_flex at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/toplevel.c:886 jl_toplevel_eval_flex at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/toplevel.c:886 ijl_toplevel_eval at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/toplevel.c:952 [inlined] ijl_toplevel_eval_in at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/toplevel.c:994 eval at ./boot.jl:430 [inlined] exec_options at ./client.jl:296 _start at ./client.jl:531 jfptr__start_73909.1 at /Users/mhauru/.julia/juliaup/julia-1.11.7+0.aarch64.apple.darwin14/lib/julia/sys.dylib (unknown line) jl_apply at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/./julia.h:2157 [inlined] true_main at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/jlapi.c:900 jl_repl_entrypoint at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-honeycrisp-XG3Q6T6R70.0/build/default-honeycrisp-XG3Q6T6R70-0/julialang/julia-release-1-dot-11/src/jlapi.c:1059 Allocations: 10484352 (Pool: 10482312; Big: 2040); GC: 11 Segmentation fault: 11 

Your system
macOS Sequoia 15.7 running on an M1 arm Mac.

julia> versioninfo() Julia Version 1.11.7 Commit f2b3dbda30a (2025-09-0812:10 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: macOS (arm64-apple-darwin24.0.0) CPU:10× Apple M1 Pro WORD_SIZE:64 LLVM: libLLVM-16.0.6 (ORCJIT, apple-m1) Threads:1 default, 0 interactive, 1 GC (on 8 virtual cores) Environment: JULIA_FORMATTER_SO =/Users/mhauru/julia_formatter.so julia>import Pkg, CondaPkg julia> Pkg.status() Project MWE v0.0.1 Status `/private/tmp/condapkg/Project.toml` [992eb4ea] CondaPkg v0.2.33 [6099a3de] PythonCall v0.9.28 julia> CondaPkg.status() CondaPkg Status /private/tmp/condapkg/CondaPkg.toml Environment /private/tmp/condapkg/.CondaPkg/.pixi/envs/default Packages python v3.10.18 (<3.11) Pip Packages harmonic v1.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions