On a M3 Mac I can produce a segfault when loading a specific subpackage, simpeg.potential_fields from version 0.22.0 of the simpeg package (https://github.com/simpeg/simpeg). When I import just 'simpeg', there is no segfault. Furthermore, other subpackages do not produce segfaults when loaded, e.g., simpeg.maps.
Here are the commands used to reproduce the segfault. (The output of some steps has been shortened; I will include a full output in a reply.)
(@v1.10) pkg> activate --temp
Activating new project at `/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS`
julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (arm64-apple-darwin22.4.0)
CPU: 12 × Apple M3 Pro
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 1 default, 0 interactive, 1 GC (on 6 virtual cores)
Environment:
JULIA_PKG_USE_CLI_GIT = 1
(jl_tI92dS) pkg> add CondaPkg PythonCall
Resolving package versions...
Updating `/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/Project.toml`
[992eb4ea] + CondaPkg v0.2.22
[6099a3de] + PythonCall v0.9.20
...
julia> using CondaPkg
(jl_wZlac1) pkg> conda add simpeg
CondaPkg Found dependencies: /var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/CondaPkg.toml
CondaPkg Found dependencies: /Users/williamdavis/.julia/packages/PythonCall/S5MOg/CondaPkg.toml
CondaPkg Resolving changes
+ python
+ simpeg
CondaPkg Creating environment
...
+ simpeg 0.22.0 pyhd8ed1ab_0 conda-forge Cached
...
Transaction finished
To activate this environment, use:
micromamba activate /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env
julia> using PythonCall
CondaPkg Found dependencies: /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/CondaPkg.toml
CondaPkg Found dependencies: /Users/williamdavis/.julia/packages/PythonCall/S5MOg/CondaPkg.toml
CondaPkg Removing environment
│ /Users/williamdavis/.julia/artifacts/98aba21a6802e06a5d2e7c48633d7dc1c3d4a749/bin/micromamba
│ -r /Users/williamdavis/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root
│ remove
│ -y
│ -p /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env
└ --all
...
CondaPkg Creating environment
│ /Users/williamdavis/.julia/artifacts/98aba21a6802e06a5d2e7c48633d7dc1c3d4a749/bin/micromamba
│ -r /Users/williamdavis/.julia/scratchspaces/0b3b1443-0f03-428d-bdfb-f27f9c1191ea/root
│ create
│ -y
│ -p /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env
│ --override-channels
│ --no-channel-priority
│ python[version='>=3.8,<4',channel='conda-forge',build='*cpython*']
│ simpeg[version='*']
└ -c conda-forge
...
julia> pyimport("simpeg")
Python: <module 'simpeg' from '/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env/lib/python3.12/site-packages/simpeg/__init__.py'>
julia> pyimport("simpeg.maps")
Python: <module 'simpeg.maps' from '/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env/lib/python3.12/site-packages/simpeg/maps/__init__.py'>
julia> pyimport("simpeg.potential_fields")
[50910] signal (11.2): Segmentation fault: 11
in expression starting at REPL[16]:1
_ZN4llvm17PMTopLevelManager16addImmutablePassEPNS_13ImmutablePassE at /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env/lib/libLLVM-14.dylib (unknown line)
Allocations: 10142116 (Pool: 10132215; Big: 9901); GC: 16
zsh: segmentation fault julia
Your system
Running on a MacBook Pro M3, with macOS Sonoma 14.5 (23F79).
Output of Base.versioninfo()
Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (arm64-apple-darwin22.4.0)
CPU: 12 × Apple M3 Pro
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 1 default, 0 interactive, 1 GC (on 6 virtual cores)
Environment:
JULIA_PKG_USE_CLI_GIT = 1
Output of Pkg.status()
Status `/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/Project.toml`
[992eb4ea] CondaPkg v0.2.22
[6099a3de] PythonCall v0.9.20
Output of CondaPkg.status()
CondaPkg Status /private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/CondaPkg.toml
Environment
/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_tI92dS/.CondaPkg/env
Packages
simpeg v0.22.0
Additional context
Running Python (from .CondaPkg/env) and importing simpeg.potential_fields directly does not cause a segfault, see example below.
This segfault does not occur with simpeg version 0.21, and the version 0.21->0.22 changed the package name from SimPEG to simpeg.
This bug is similar to issue #315, except this bug is specific to a subpackage
(@v1.10) pkg> activate --temp
...
(jl_yP78nT) pkg> add CondaPkg PythonCall
julia> using CondaPkg
(jl_yP78nT) pkg> conda add simpeg=0.21
...
julia> using PythonCall
...
julia> pyimport("SimPEG")
Python: <module 'SimPEG' from '/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_yP78nT/.CondaPkg/env/lib/python3.12/site-packages/SimPEG/__init__.py'>
julia> pyimport("SimPEG.maps")
Python: <module 'SimPEG.maps' from '/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_yP78nT/.CondaPkg/env/lib/python3.12/site-packages/SimPEG/maps.py'>
julia> pyimport("SimPEG.potential_fields")
Python: <module 'SimPEG.potential_fields' from '/private/var/folders/8q/1dg0hln57_xgmstm42jkdxpr0000gn/T/jl_yP78nT/.CondaPkg/env/lib/python3.12/site-packages/SimPEG/potential_fields/__init__.py'>
Affects: PythonCall
Describe the bug
On a M3 Mac I can produce a segfault when loading a specific subpackage,
simpeg.potential_fields
from version 0.22.0 of thesimpeg
package (https://github.com/simpeg/simpeg). When I import just 'simpeg', there is no segfault. Furthermore, other subpackages do not produce segfaults when loaded, e.g.,simpeg.maps
.Here are the commands used to reproduce the segfault. (The output of some steps has been shortened; I will include a full output in a reply.)
Your system
Running on a MacBook Pro M3, with macOS Sonoma 14.5 (23F79).
Output of
Base.versioninfo()
Output of
Pkg.status()
Output of
CondaPkg.status()
Additional context
.CondaPkg/env
) and importingsimpeg.potential_fields
directly does not cause a segfault, see example below.simpeg
version 0.21, and the version 0.21->0.22 changed the package name fromSimPEG
tosimpeg
.