`shortest_path_dijkstra` crashes julia when given wrong input
bugtopic: combinatoricspackage: Polymake
Found together with @julioquacdur. To reproduce the crash:
```
G = graph_from_edges([[1,2]])
shortest_path_dijkstra(G, 1, 3) # works
shortest_path_dijkstra(G, 3, 1) # crashes
```
Here is the crash:
```
julia> p = shortest_path_dijkstra(G, 3, 1) # crashes
[80174] signal 11 (128): Segmentation fault
in expression starting at REPL[3]:1
operator() at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/internal/sparse2d.h:438 [inlined]
to_node at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/next/Graph.h:1102 [inlined]
do_search<polymake::graph::DijkstraShortestPath<TopLayer>::solve(polymake::Int, polymake::Int, bool) [with TopLayer = polymake::graph::DijkstraShortestPathWithScalarWeights<pm::graph::Undirected, long int>]::<lambda(const label_t&)> > at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/graph/DijkstraShortestPathBase.h:204 [inlined]
solve<polymake::graph::DijkstraShortestPath<TopLayer>::solve(polymake::Int, polymake::Int, bool) [with TopLayer = polymake::graph::DijkstraShortestPathWithScalarWeights<pm::graph::Undirected, long int>]::<lambda(const label_t&)> > at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/graph/DijkstraShortestPathBase.h:166 [inlined]
solve<polymake::graph::DijkstraShortestPath<TopLayer>::solve(polymake::Int, polymake::Int, bool) [with TopLayer = polymake::graph::DijkstraShortestPathWithScalarWeights<pm::graph::Undirected, long int>]::<lambda(const label_t&)> > at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/graph/DijkstraShortestPath.h:78 [inlined]
solve at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/polymake/graph/DijkstraShortestPath.h:84 [inlined]
operator() at /workspace/srcdir/libpolymake-julia/include/jlpolymake/containers.h:532 [inlined]
_M_invoke at /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/8.1.0/bits/std_function.h:283
operator() at /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/8.1.0/bits/std_function.h:687 [inlined]
operator() at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/jlcxx/module.hpp:48 [inlined]
apply at /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include/jlcxx/module.hpp:73
macro expansion at /home/ren/.julia/packages/CxxWrap/0hc89/src/CxxWrap.jl:724 [inlined]
_shortest_path_dijkstra at ./none:0
unknown function (ip: 0x788059f57553) at (unknown file)
#shortest_path_dijkstra#4310 at /home/ren/.julia/packages/Oscar/5rrcQ/src/Combinatorics/Graphs/functions.jl:1117
shortest_path_dijkstra at /home/ren/.julia/packages/Oscar/5rrcQ/src/Combinatorics/Graphs/functions.jl:1111
unknown function (ip: 0x788059f567e0) at (unknown file)
jl_apply at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
do_call at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/interpreter.c:123
eval_value at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/interpreter.c:243
eval_stmt_value at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/interpreter.c:194 [inlined]
eval_body at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/interpreter.c:707
jl_interpret_toplevel_thunk at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/interpreter.c:898
jl_toplevel_eval_flex at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/toplevel.c:1035
__repl_entry_eval_expanded_with_loc at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:301
jl_apply at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/builtins.c:881
toplevel_eval_with_hooks at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:308
toplevel_eval_with_hooks at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:312
toplevel_eval_with_hooks at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:305 [inlined]
eval_user_input at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:330
repl_backend_loop at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:452
#start_repl_backend#41 at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:427
start_repl_backend at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:424 [inlined]
#run_repl#50 at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:653
run_repl at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:639
jfptr_run_repl_19202.1 at /home/ren/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/compiled/v1.12/REPL/u0gqU_ZarBC.so (unknown line)
run_std_repl at ./client.jl:478
jfptr_run_std_repl_43716.1 at /home/ren/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/builtins.c:881
run_main_repl at ./client.jl:499
repl_main at ./client.jl:586 [inlined]
_start at ./client.jl:561
jfptr__start_74358.1 at /home/ren/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
true_main at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/jlapi.c:971
jl_repl_entrypoint at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/src/jlapi.c:1139
main at /cache/build/builder-amdci5-3/julialang/julia-release-1-dot-12/cli/loader_exe.c:58
unknown function (ip: 0x78807782a574) at /lib/x86_64-linux-gnu/libc.so.6
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8) at /workspace/srcdir/glibc-2.17/csu/../sysdeps/x86_64/start.S
Allocations: 23381832 (Pool: 23348446; Big: 33386); GC: 16
Segmentation fault (core dumped)
```
0 条评论