Skip to content

"Unreachable reached" bug during Test.@inferred on Julia 1.6.7 #53761

@MilesCranmer

Description

@MilesCranmer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behavior

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions