JuliaGeometry / DelaunayTriangulation.jl

Delaunay triangulations and Voronoi tessellations in two dimensions.
https://juliageometry.github.io/DelaunayTriangulation.jl/
MIT License
62 stars 5 forks source link

Weird hanging behaviour with `Val(true)` in kwarg #118

Closed DanielVandH closed 2 months ago

DanielVandH commented 2 months ago

https://github.com/JuliaGeometry/DelaunayTriangulation.jl/blob/6910c271aa3bc1d566f8a65ce0eb0f6fff6edc18/src/data_structures/triangulation/triangulation.jl#L407-L419

When calling for example Triangulation(rand(2, 50); IntegerType=Int32), this method hangs forever, and interrupting gives something like

subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
subtype_unionall at C:/workdir/src\subtype.c:915
subtype at C:/workdir/src\subtype.c:1406
exists_subtype at C:/workdir/src\subtype.c:1637 [inlined]
_forall_exists_subtype at C:/workdir/src\subtype.c:1668
forall_exists_subtype at C:/workdir/src\subtype.c:1682 [inlined]
ijl_subtype_env at C:/workdir/src\subtype.c:2132
jl_f_issubtype at C:/workdir/src\builtins.c:547
Ôèæ at .\compiler\abstractlattice.jl:151 [inlined]
Ôèæ at .\compiler\typelattice.jl:530
Ôèæ at .\compiler\typelattice.jl:508
IRInterpretationState at .\compiler\inferencestate.jl:673
IRInterpretationState at .\compiler\inferencestate.jl:699
semi_concrete_eval_call at .\compiler\abstractinterpretation.jl:1165
abstract_call_method_with_const_args at .\compiler\abstractinterpretation.jl:812
abstract_call_method_with_const_args at .\compiler\abstractinterpretation.jl:788
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:103
abstract_call_known at .\compiler\abstractinterpretation.jl:2087
abstract_call at .\compiler\abstractinterpretation.jl:2169
abstract_call at .\compiler\abstractinterpretation.jl:2162
abstract_call at .\compiler\abstractinterpretation.jl:2354
abstract_eval_call at .\compiler\abstractinterpretation.jl:2370
abstract_eval_statement_expr at .\compiler\abstractinterpretation.jl:2380
abstract_eval_statement at .\compiler\abstractinterpretation.jl:2624
abstract_eval_basic_statement at .\compiler\abstractinterpretation.jl:2889
typeinf_local at .\compiler\abstractinterpretation.jl:3098
typeinf_nocycle at .\compiler\abstractinterpretation.jl:3186
_typeinf at .\compiler\typeinfer.jl:247
typeinf at .\compiler\typeinfer.jl:216
typeinf_edge at .\compiler\typeinfer.jl:930
abstract_call_method at .\compiler\abstractinterpretation.jl:629
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:95
abstract_call_known at .\compiler\abstractinterpretation.jl:2087
abstract_call at .\compiler\abstractinterpretation.jl:2169
abstract_call at .\compiler\abstractinterpretation.jl:2162
abstract_call at .\compiler\abstractinterpretation.jl:2354
abstract_eval_call at .\compiler\abstractinterpretation.jl:2370
abstract_eval_statement_expr at .\compiler\abstractinterpretation.jl:2380
abstract_eval_statement at .\compiler\abstractinterpretation.jl:2624
abstract_eval_basic_statement at .\compiler\abstractinterpretation.jl:2913
typeinf_local at .\compiler\abstractinterpretation.jl:3098
typeinf_nocycle at .\compiler\abstractinterpretation.jl:3186
_typeinf at .\compiler\typeinfer.jl:247
typeinf at .\compiler\typeinfer.jl:216
typeinf_ext at .\compiler\typeinfer.jl:1051
typeinf_ext_toplevel at .\compiler\typeinfer.jl:1082
typeinf_ext_toplevel at .\compiler\typeinfer.jl:1078
jfptr_typeinf_ext_toplevel_38981.1 at C:\Users\djv23\.julia\juliaup\julia-1.10.4+0.x64.w64.mingw32\lib\julia\sys.dll (unknown line)
_jl_invoke at C:/workdir/src\gf.c:2895 [inlined]
ijl_apply_generic at C:/workdir/src\gf.c:3077 [inlined]
jl_apply at C:/workdir/src\julia.h:1982 [inlined]
jl_type_infer at C:/workdir/src\gf.c:394
jl_generate_fptr_impl at C:/workdir/src\jitlayers.cpp:504
jl_compile_method_internal at C:/workdir/src\gf.c:2481
jl_compile_method_internal at C:/workdir/src\gf.c:2372 [inlined]
_jl_invoke at C:/workdir/src\gf.c:2887 [inlined]
ijl_apply_generic at C:/workdir/src\gf.c:3077
jl_apply at C:/workdir/src\julia.h:1982 [inlined]
do_call at C:/workdir/src\interpreter.c:126
eval_value at C:/workdir/src\interpreter.c:223
eval_stmt_value at C:/workdir/src\interpreter.c:174 [inlined]
eval_body at C:/workdir/src\interpreter.c:635
jl_interpret_toplevel_thunk at C:/workdir/src\interpreter.c:775
top-level scope at REPL[4]:1
jl_toplevel_eval_flex at C:/workdir/src\toplevel.c:934
jl_toplevel_eval_flex at C:/workdir/src\toplevel.c:877
ijl_toplevel_eval at C:/workdir/src\toplevel.c:943 [inlined]
ijl_toplevel_eval_in at C:/workdir/src\toplevel.c:985
eval at .\boot.jl:385 [inlined]
eval_user_input at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:150
repl_backend_loop at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:246
#start_repl_backend#46 at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:231
start_repl_backend at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:228
#run_repl#59 at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:389
run_repl at C:\workdir\usr\share\julia\stdlib\v1.10\REPL\src\REPL.jl:375
jfptr_run_repl_95791.1 at C:\Users\djv23\.julia\juliaup\julia-1.10.4+0.x64.w64.mingw32\lib\julia\sys.dll (unknown line)
#1013 at .\client.jl:432
jfptr_YY.1013_86566.1 at C:\Users\djv23\.julia\juliaup\julia-1.10.4+0.x64.w64.mingw32\lib\julia\sys.dll (unknown line)
jl_apply at C:/workdir/src\julia.h:1982 [inlined]
jl_f__call_latest at C:/workdir/src\builtins.c:812
#invokelatest#2 at .\essentials.jl:892 [inlined]
invokelatest at .\essentials.jl:889 [inlined]
run_main_repl at .\client.jl:416
exec_options at .\client.jl:333
_start at .\client.jl:552
jfptr__start_86591.1 at C:\Users\djv23\.julia\juliaup\julia-1.10.4+0.x64.w64.mingw32\lib\julia\sys.dll (unknown line)
jl_apply at C:/workdir/src\julia.h:1982 [inlined]
true_main at C:/workdir/src\jlapi.c:582
jl_repl_entrypoint at C:/workdir/src\jlapi.c:731
mainCRTStartup at C:/workdir/cli\loader_exe.c:58
BaseThreadInitThunk at C:\Windows\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\Windows\SYSTEM32\ntdll.dll (unknown line)
ERROR: InterruptException:

Not sure why? Changing build_cache=Val(true) to build_cache=true eliminates the problem. Luckily this function should never be called (it is called by triangulate, but providing all the keyword arguments poses no problems apparently), although it is technically public, but a PR will be made fixing it soon.

DanielVandH commented 2 months ago

Also seemingly not a problem in the CI since that method does actually get called there. Maybe it's an issue only on my machine, if anyone happens to see this and wants to try and reproduce it.