Skip to content

Segmentation fault on (illegal?) type definition #21923

@traktofon

Description

@traktofon

The following attempt at defining a recursive type (which may be illegal in the way I'm using here) immediately leads to a segmentation fault on 0.6.0-rc1 as well as on current master; it proceeds without error or segfault on 0.5.2 though.

$ julia --startup-file=no
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.6.0-rc1.0 (2017-05-07 00:00 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-pc-linux-gnu

julia> type Foo{T,N}; v::Vector{Foo{T}}; end

signal (11): Segmentation fault
while loading no file, in expression starting on line 0
has_free_typevars at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:147
has_free_typevars at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:159 [inlined]
jl_has_free_typevars at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:178
inst_type_w_ at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:1394
inst_all at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:1240 [inlined]
inst_datatype at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:1172
inst_type_w_ at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:1400
inst_type_w_ at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:1345
jl_instantiate_unionall at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:844
jl_apply_type at /home/centos/buildbot/slave/package_tarball64/build/src/jltypes.c:794
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:337 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:356 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1930
do_call at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:75
eval at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:242
do_call at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:74
eval at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:242
do_call at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:74
eval at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:242
do_call at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:74
eval at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:242
eval at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:301
eval_body at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:624
jl_interpret_toplevel_thunk at /home/centos/buildbot/slave/package_tarball64/build/src/interpreter.c:692
jl_toplevel_eval_flex at /home/centos/buildbot/slave/package_tarball64/build/src/toplevel.c:590
jl_toplevel_eval_in at /home/centos/buildbot/slave/package_tarball64/build/src/builtins.c:496
eval at ./boot.jl:235
unknown function (ip: 0x7fb8a88b45af)
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:337 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:356 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1930
eval_user_input at ./REPL.jl:66
unknown function (ip: 0x7fb8a892f4bf)
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:337 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:356 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1930
macro expansion at ./REPL.jl:97 [inlined]
#1 at ./event.jl:73
unknown function (ip: 0x7fb8962b92af)
jl_call_fptr_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:337 [inlined]
jl_call_method_internal at /home/centos/buildbot/slave/package_tarball64/build/src/julia_internal.h:356 [inlined]
jl_apply_generic at /home/centos/buildbot/slave/package_tarball64/build/src/gf.c:1930
jl_apply at /home/centos/buildbot/slave/package_tarball64/build/src/julia.h:1422 [inlined]
start_task at /home/centos/buildbot/slave/package_tarball64/build/src/task.c:267
unknown function (ip: 0xffffffffffffffff)
Allocations: 1316512 (Pool: 1315278; Big: 1234); GC: 0
Segmentation fault

If this type definition is illegal, julia should produce an error message, but not segfault.

Metadata

Metadata

Assignees

Labels

bugIndicates an unexpected problem or unintended behaviorregressionRegression in behavior compared to a previous versiontypes and dispatchTypes, subtyping and method dispatch

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions