Skip to content

Illegal instruction with ccall to :memcpy #31073

Closed
@timholy

Description

@timholy

Here's a bug we're struggling with over at JuliaInterpreter. We've recently set up a test harness to run Julia's own tests under the interpreter (JuliaDebug/JuliaInterpreter.jl#13). Several of the tests are marked with ☠️, which we're using to indicate that running that test kills Julia. For one particular case we have a MWE in JuliaDebug/JuliaInterpreter.jl#28.

This particular bug can be triggered even without JuliaInterpreter:

julia> a, b = ['0'], ['a'];

julia> arr = Vector{Char}(undef, 2)
2-element Array{Char,1}:
 '\x74\xd8\x61\xf0'
 '\x00\x00\x7f\x60'

julia> ptr = pointer(arr)
Ptr{Char} @0x00007f6075562330

julia> elsz = sizeof(Char)
4

julia> na = length(a)
1

julia> nba = na * elsz
4

julia> ccall(:memcpy, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt), arr, a, nba)
Unreachable reached at 0x7f606c259cae

signal (4): Illegal instruction
in expression starting at REPL[7]:1
top-level scope at ./REPL[7]:1
jl_fptr_args at /home/tim/src/julia-master/src/gf.c:1906
jl_fptr_trampoline at /home/tim/src/julia-master/src/gf.c:1896
jl_toplevel_eval_flex at /home/tim/src/julia-master/src/toplevel.c:791
jl_toplevel_eval_flex at /home/tim/src/julia-master/src/toplevel.c:746
jl_toplevel_eval at /home/tim/src/julia-master/src/toplevel.c:806
jl_toplevel_eval_in at /home/tim/src/julia-master/src/toplevel.c:826
eval at ./boot.jl:328
jl_fptr_args at /home/tim/src/julia-master/src/gf.c:1906
jl_apply_generic at /home/tim/src/julia-master/src/gf.c:2251
eval_user_input at /home/tim/src/julia-master/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:86
run_backend at /home/tim/.julia/dev/Revise/src/Revise.jl:773
#61 at ./task.jl:261
jl_fptr_args at /home/tim/src/julia-master/src/gf.c:1906
jl_fptr_trampoline at /home/tim/src/julia-master/src/gf.c:1896
jl_apply_generic at /home/tim/src/julia-master/src/gf.c:2251
jl_apply at /home/tim/src/julia-master/src/julia.h:1578
start_task at /home/tim/src/julia-master/src/task.c:572
unknown function (ip: 0xffffffffffffffff)
Allocations: 9313301 (Pool: 9311285; Big: 2016); GC: 20
/home/tim/bin/julia-master: line 2: 14664 Illegal instruction     (core dumped) ~/src/julia-master/julia "$@"

Metadata

Metadata

Assignees

Labels

bugIndicates an unexpected problem or unintended behaviorcompiler:codegenGeneration of LLVM IR and native coderegressionRegression in behavior compared to a previous version

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions