Crash: illegal instruction 4, StackOverflowError, or freeze

Here is a small-enough program that reproduces the error:

using CairoMakie
using OffsetArrays
(im, km_z) = (58, 38)
xax = 0:(im+1)
zax = OffsetArray(Vector{Float64}(undef, km_z+2), 0:km_z+1)

xzsect = zeros(Float64, size(xax,1), size(zax,1))

function plot_xz()
  nooffs = OffsetArrays.no_offset_view
  fig = Figure()
  ax = Axis(fig[1,1])
  c = contourf!(ax, xax, zax, nooffs(xzsect)) # -> StackOverflowError
#  c = contourf!(ax, xax, nooffs(zax), nooffs(xzsect)) # <- fine
end

plot_xz()

In some cases, it produces the above StackOverflowError error without any stack trace. In other cases (I don’t see the pattern), it produces this error:

$ julia try-crash-02.jl

[96975] signal (4.1): Illegal instruction: 4
in expression starting at none:0
_os_unfair_lock_recursive_abort at /usr/lib/system/libsystem_platform.dylib (unknown line)
_os_unfair_lock_lock_slow at /usr/lib/system/libsystem_platform.dylib (unknown line)
Allocations: 7711446 (Pool: 7706794; Big: 4652); GC: 18
fish: Job 1, 'julia try-crash-02.jl' terminated by signal SIGTRAP (Trace or breakpoint trap)
$

where “$” is the shell prompt.

I’ve submitted this report to the Makie repository website.

1 Like