JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
44.99k stars 5.42k forks source link

segmentation fault on julia nightly - macos 14 - aarch64 #54747

Open longemen3000 opened 4 weeks ago

longemen3000 commented 4 weeks ago

i've been running a test suite on my library for quite some time, and there was this segmentation fault that always occur on github actions, with julia nightly, MacOS 14 and aarch64. a (to be honest, non minimal) MWE:

using Clapeyron, CoolProp,Test
@testset "Helmholtz + Activity" begin
    model = HelmAct(["water","ethanol"])
    p = 12666.0
    x1 = Clapeyron.FractionVector(0.00350)
    @test bubble_temperature(model,p,x1)[4][1] ≈ 0.00198 rtol = 1e-2
end

the full stacktrace is in the github actions logs: https://github.com/ClapeyronThermo/Clapeyron.jl/actions/runs/9439814406/job/25998382805 Sadly, i don't have an M-series machine on my own, so i can't test this.

giordano commented 4 weeks ago

Sadly, i don't have an M-series machine on my own, so i can't test this.

Usual reminder that you can use https://github.com/mxschmitt/action-tmate to get access to github actions runners.

Edit: for what is worth, test stuff is totally unrelated, so the reproducer can be just barely simplified to

using Clapeyron, CoolProp

bubble_temperature(HelmAct(["water","ethanol"]), 12666.0, Clapeyron.FractionVector(0.00350))
gbaraldi commented 4 weeks ago

That segfault seems to come from SLP vectorizer, but running julia with assertions to see if something pops up.

update: This triggers a

bubble_temperature(HelmAct(["water","ethanol"]), 12666.0, Clapeyron.FractionVector(0.00350)) Assertion failed: (hasOperandBundles() && "Don't call otherwise!"), function getBundleOperandsStartIndex, file /workspace/srcdir/llvm-project/llvm/include/llvm/IR/InstrTypes.h, line 1976.

gbaraldi commented 3 weeks ago

This is an LLVM bug https://github.com/llvm/llvm-project/issues/95016 :(

longemen3000 commented 3 weeks ago

Thanks @gbaraldi, @giordano for your help!