Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

World age assertion failure on release-1.0 in debug mode #29425

Closed
blegat opened this issue Sep 29, 2018 · 2 comments
Closed

World age assertion failure on release-1.0 in debug mode #29425

blegat opened this issue Sep 29, 2018 · 2 comments

Comments

@blegat
Copy link
Contributor

blegat commented Sep 29, 2018

Steps to reproduce:

] add JuMP#master
] add PolyJuMP#master

Build Julia with release-1.0 in debug mode:

$ make debug

I just did it and I get

julia> versioninfo()
Julia Version 1.0.1-pre.171
Commit 398d87829d* (2018-09-26 22:52 UTC)
DEBUG build
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)

Try using PolyJuMP:

$ ./usr/bin/julia-debug -e 'using PolyJuMP'
julia-debug: /home/blegat/git/julia/src/gf.c:1432: jl_method_instance_add_backedge: Assertion `callee->def.method->min_world <= caller->min_world && callee->max_world >= caller->max_world' failed.

signal (6): Aborted
in expression starting at /home/blegat/.julia/dev/PolyJuMP/src/basis.jl:3
gsignal at /usr/lib/libc.so.6 (unknown line)
abort at /usr/lib/libc.so.6 (unknown line)
__assert_fail_base.cold.0 at /usr/lib/libc.so.6 (unknown line)
__assert_fail at /usr/lib/libc.so.6 (unknown line)
jl_method_instance_add_backedge at /home/blegat/git/julia/src/gf.c:1432
store_backedges at ./compiler/typeinfer.jl:197
typeinf at ./compiler/typeinfer.jl:72
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:342
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_eval_call at ./compiler/abstractinterpretation.jl:817
abstract_eval at ./compiler/abstractinterpretation.jl:904
typeinf_local at ./compiler/abstractinterpretation.jl:1114
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1184
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:342
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_eval_call at ./compiler/abstractinterpretation.jl:817
abstract_eval at ./compiler/abstractinterpretation.jl:904
typeinf_local at ./compiler/abstractinterpretation.jl:1128
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1184
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:342
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_call at ./compiler/abstractinterpretation.jl:790
abstract_eval_call at ./compiler/abstractinterpretation.jl:819
abstract_eval at ./compiler/abstractinterpretation.jl:904
typeinf_local at ./compiler/abstractinterpretation.jl:1128
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1184
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:342
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_call at ./compiler/abstractinterpretation.jl:790
abstract_eval_call at ./compiler/abstractinterpretation.jl:819
abstract_eval at ./compiler/abstractinterpretation.jl:904
typeinf_local at ./compiler/abstractinterpretation.jl:1128
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1184
typeinf at ./compiler/typeinfer.jl:15
typeinf_ext at ./compiler/typeinfer.jl:567
typeinf_ext at ./compiler/typeinfer.jl:604
jfptr_typeinf_ext_1 at /home/blegat/git/julia/usr/lib/julia/sys-debug.so (unknown line)
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
jl_apply at /home/blegat/git/julia/src/julia.h:1537
jl_apply_with_saved_exception_state at /home/blegat/git/julia/src/rtutils.c:257
jl_type_infer at /home/blegat/git/julia/src/gf.c:275
jl_compile_method_internal at /home/blegat/git/julia/src/gf.c:1786
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1830
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363
eval_body at /home/blegat/git/julia/src/interpreter.c:678
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:795
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f171724e94f)
unknown function (ip: 0x4)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:804
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:813
jl_parse_eval_all at /home/blegat/git/julia/src/ast.c:838
jl_load at /home/blegat/git/julia/src/toplevel.c:847
jl_load_ at /home/blegat/git/julia/src/toplevel.c:854
include at ./boot.jl:317 [inlined]
include_relative at ./loading.jl:1041
include at ./sysimg.jl:29 [inlined]
include at /home/blegat/.julia/dev/PolyJuMP/src/PolyJuMP.jl:3
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1831
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363
eval_body at /home/blegat/git/julia/src/interpreter.c:678
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:795
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f1714e05c2f)
unknown function (ip: 0xffffffffffffffff)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:804
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:813
jl_eval_module_expr at /home/blegat/git/julia/src/toplevel.c:233
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:651
jl_parse_eval_all at /home/blegat/git/julia/src/ast.c:838
jl_load at /home/blegat/git/julia/src/toplevel.c:847
jl_load_ at /home/blegat/git/julia/src/toplevel.c:854
include at ./boot.jl:317 [inlined]
include_relative at ./loading.jl:1041
include at ./sysimg.jl:29
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363
eval_body at /home/blegat/git/julia/src/interpreter.c:678
eval_body at /home/blegat/git/julia/src/interpreter.c:613
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:795
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f17562dc0ff)
unknown function (ip: 0x2)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:804
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:813
jl_toplevel_eval at /home/blegat/git/julia/src/toplevel.c:822
jl_toplevel_eval_in at /home/blegat/git/julia/src/builtins.c:622
eval at ./boot.jl:319 [inlined]
eval at ./client.jl:389
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
top-level scope at ./none:3
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1831
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:807
jl_toplevel_eval at /home/blegat/git/julia/src/toplevel.c:822
jl_toplevel_eval_in at /home/blegat/git/julia/src/builtins.c:622
eval at ./boot.jl:319
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
macro expansion at ./logging.jl:317 [inlined]
exec_options at ./client.jl:219
_start at ./client.jl:421
jl_fptr_args at /home/blegat/git/julia/src/gf.c:1841
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2184
jl_apply at /home/blegat/git/julia/ui/../src/julia.h:1537
true_main at /home/blegat/git/julia/ui/repl.c:112
main at /home/blegat/git/julia/ui/repl.c:233
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /home/blegat/git/julia/usr/bin/julia-debug (unknown line)
Allocations: 8771599 (Pool: 8770570; Big: 1029); GC: 15
ERROR: Failed to precompile PolyJuMP [ddf597a6-d67e-5340-b84c-e37d84115374] to /home/blegat/.julia/compiled/v1.0/PolyJuMP/5SrbL.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] macro expansion at ./logging.jl:313 [inlined]
 [3] compilecache(::Base.PkgId, ::String) at ./loading.jl:1187
 [4] macro expansion at ./logging.jl:311 [inlined]
 [5] _require(::Base.PkgId) at ./loading.jl:944
 [6] require(::Base.PkgId) at ./loading.jl:855
 [7] macro expansion at ./logging.jl:311 [inlined]
 [8] require(::Module, ::Symbol) at ./loading.jl:837

It seems related to #28595 but I don't have any evidence that this is caused by a generated function.
Note that PolyJuMP is using MultivariatePolynomials which has caused world age failure in the past for him packages depending on it (#22355 (comment)) but it compiles fine here:

$ ./usr/bin/julia-debug -e 'using MultivariatePolynomials'

World age issues with MultivariatePolynomials have been a nightmare on Julia v0.6, it kept disappearing an reappearing for random reasons and I was hoping that it would all be over with Julia v1.0. Any idea ?

@blegat
Copy link
Contributor Author

blegat commented Sep 29, 2018

I Just tested with Julia master and it still fails:

$ ./julia
julia> versioninfo()
Julia Version 1.1.0-DEV.334
Commit 3b3a16362b* (2018-09-28 20:17 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
$ ./julia -e 'using PolyJuMP'
julia: /home/blegat/git/julia/src/gf.c:1435: jl_method_instance_add_backedge: Assertion `callee->def.method->min_world <= caller->min_world && callee->max_world >= caller->max_world' failed.

signal (6): Aborted
in expression starting at /home/blegat/.julia/dev/PolyJuMP/src/basis.jl:3
gsignal at /usr/lib/libc.so.6 (unknown line)
abort at /usr/lib/libc.so.6 (unknown line)
__assert_fail_base.cold.0 at /usr/lib/libc.so.6 (unknown line)
__assert_fail at /usr/lib/libc.so.6 (unknown line)
jl_method_instance_add_backedge at /home/blegat/git/julia/src/gf.c:1435
store_backedges at ./compiler/typeinfer.jl:197
typeinf at ./compiler/typeinfer.jl:72
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:349
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_eval_call at ./compiler/abstractinterpretation.jl:824
abstract_eval at ./compiler/abstractinterpretation.jl:911
typeinf_local at ./compiler/abstractinterpretation.jl:1140
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1210
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:349
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_eval_call at ./compiler/abstractinterpretation.jl:824
abstract_eval at ./compiler/abstractinterpretation.jl:911
typeinf_local at ./compiler/abstractinterpretation.jl:1154
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1210
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:349
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_call at ./compiler/abstractinterpretation.jl:797
abstract_eval_call at ./compiler/abstractinterpretation.jl:826
abstract_eval at ./compiler/abstractinterpretation.jl:911
typeinf_local at ./compiler/abstractinterpretation.jl:1154
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1210
typeinf at ./compiler/typeinfer.jl:15
typeinf_edge at ./compiler/typeinfer.jl:492
abstract_call_method at ./compiler/abstractinterpretation.jl:349
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:81
abstract_call at ./compiler/abstractinterpretation.jl:797
abstract_eval_call at ./compiler/abstractinterpretation.jl:826
abstract_eval at ./compiler/abstractinterpretation.jl:911
typeinf_local at ./compiler/abstractinterpretation.jl:1154
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1210
typeinf at ./compiler/typeinfer.jl:15
typeinf_ext at ./compiler/typeinfer.jl:567
typeinf_ext at ./compiler/typeinfer.jl:604
jfptr_typeinf_ext_1 at /home/blegat/git/julia/usr/lib/julia/sys.so (unknown line)
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
jl_apply at /home/blegat/git/julia/src/julia.h:1559 [inlined]
jl_apply_with_saved_exception_state at /home/blegat/git/julia/src/rtutils.c:252
jl_type_infer at /home/blegat/git/julia/src/gf.c:275
jl_compile_method_internal at /home/blegat/git/julia/src/gf.c:1798
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1842
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363 [inlined]
eval_body at /home/blegat/git/julia/src/interpreter.c:682
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:808
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f7b10b69a9f)
unknown function (ip: 0x4)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:817
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:818
jl_parse_eval_all at /home/blegat/git/julia/src/ast.c:881
jl_load at /home/blegat/git/julia/src/toplevel.c:852
include at ./boot.jl:317 [inlined]
include_relative at ./loading.jl:1041
include at ./sysimg.jl:29 [inlined]
include at /home/blegat/.julia/dev/PolyJuMP/src/PolyJuMP.jl:3
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1843
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363 [inlined]
eval_body at /home/blegat/git/julia/src/interpreter.c:682
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:808
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f7b5000eb7f)
unknown function (ip: 0xffffffffffffffff)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:817
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:818
jl_eval_module_expr at /home/blegat/git/julia/src/toplevel.c:233
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:656
jl_parse_eval_all at /home/blegat/git/julia/src/ast.c:881
jl_load at /home/blegat/git/julia/src/toplevel.c:852
include at ./boot.jl:317 [inlined]
include_relative at ./loading.jl:1041
include at ./sysimg.jl:29
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
do_call at /home/blegat/git/julia/src/interpreter.c:324
eval_value at /home/blegat/git/julia/src/interpreter.c:430
eval_stmt_value at /home/blegat/git/julia/src/interpreter.c:363 [inlined]
eval_body at /home/blegat/git/julia/src/interpreter.c:682
eval_body at /home/blegat/git/julia/src/interpreter.c:613
jl_interpret_toplevel_thunk_callback at /home/blegat/git/julia/src/interpreter.c:808
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f7b50f4595f)
unknown function (ip: 0x2)
jl_interpret_toplevel_thunk at /home/blegat/git/julia/src/interpreter.c:817
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:818
jl_toplevel_eval_in at /home/blegat/git/julia/src/builtins.c:622
eval at ./boot.jl:319 [inlined]
eval at ./client.jl:389
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
top-level scope at ./none:3
jl_fptr_trampoline at /home/blegat/git/julia/src/gf.c:1843
jl_toplevel_eval_flex at /home/blegat/git/julia/src/toplevel.c:812
jl_toplevel_eval_in at /home/blegat/git/julia/src/builtins.c:622
eval at ./boot.jl:319
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
macro expansion at ./logging.jl:317 [inlined]
exec_options at ./client.jl:219
_start at ./client.jl:421
jl_apply_generic at /home/blegat/git/julia/src/gf.c:2198
jl_apply at /home/blegat/git/julia/ui/../src/julia.h:1559 [inlined]
true_main at /home/blegat/git/julia/ui/repl.c:112
main at /home/blegat/git/julia/ui/repl.c:233
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /home/blegat/git/julia/usr/bin/julia (unknown line)
Allocations: 9030607 (Pool: 9029420; Big: 1187); GC: 16
ERROR: Failed to precompile PolyJuMP [ddf597a6-d67e-5340-b84c-e37d84115374] to /home/blegat/.julia/compiled/v1.1/PolyJuMP/5SrbL.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] macro expansion at ./logging.jl:313 [inlined]
 [3] compilecache(::Base.PkgId, ::String) at ./loading.jl:1187
 [4] macro expansion at ./logging.jl:311 [inlined]
 [5] _require(::Base.PkgId) at ./loading.jl:944
 [6] require(::Base.PkgId) at ./loading.jl:855
 [7] macro expansion at ./logging.jl:311 [inlined]
 [8] require(::Module, ::Symbol) at ./loading.jl:837

@KristofferC
Copy link
Member

Should be fixed by #31191.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants