-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
I'm getting the bug
Unreachable reached at 0x7bcccafee4dd
signal (4): Illegal instruction
According to discourse, this deserved a bug report.
I get this when running Julia 1.6.7 SymbolicRegression.jl unittests on one of my branches. You can see the log here: https://github.com/MilesCranmer/SymbolicRegression.jl/actions/runs/8309436354/job/22740784019. I can reproduce it on my other Linux machines as well.
It specifically comes from this line: https://github.com/MilesCranmer/SymbolicRegression.jl/blob/bc3d642281e4d99ee3380cea6c21a0abae901790/test/test_deterministic.jl#L22-L30. This is not a new test; it's never had issues before. It seems like something in the type inference is breaking.
I have uploaded an rr trace here, of just running this test (which gets the error): https://s3.amazonaws.com/julialang-dumps/reports/2024-03-16T21-43-57-MilesCranmer.tar.zst so you can walk through it.
You can also reproduce this by checking out commit bc3d642281e4d99ee3380cea6c21a0abae901790 of SymbolicRegression.jl and running the file test/test_deterministic.jl
for Julia 1.6.7.
My guess is that it is related to type inference through Optim.optimize
when the DynamicExpressions.OperatorEnum
is underspecified (i.e., a UnionAll
). I can get around this bug with this commit: MilesCranmer/SymbolicRegression.jl@d19f15b, which specifies the full OperatorEnum
. I'm not sure if that helps or not.