RegExpOptimize crash from webui
I encountered a segfault from webui. This is how the backtrace looked like from gdb:
Program received signal SIGSEGV, Segmentation fault.
__cxxabiv1::__dynamic_cast (src_ptr=0x5555558c1a90, src_type=0x7ffff0728510 <typeinfo for regexp::FormalRegExpElement<object::Object>>, dst_type=0x7ffff07284a0 <typeinfo for regexp::FormalRegExpAlternation<object::Object>>, src2dst=0) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc:55
55 /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc: Adresář nebo soubor neexistuje.
#0 __cxxabiv1::__dynamic_cast (src_ptr=0x5555558c1a90, src_type=0x7ffff0728510 <typeinfo for regexp::FormalRegExpElement<object::Object>>, dst_type=0x7ffff07284a0 <typeinfo for regexp::FormalRegExpAlternation<object::Object>>, src2dst=0) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/dyncast.cc:55
#1 0x00007ffff4841275 in regexp::simplify::RegExpOptimize::A1<object::Object> (node=@0x7fffffffc630: 0x5555558c1a90) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:113
#2 0x00007ffff483f0fa in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:47
#3 0x00007ffff4842d3a in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc6d0: 0x5555558c18e0) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:65
#4 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#5 0x00007ffff4842e20 in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc770: 0x5555558c1790) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:76
#6 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#7 0x00007ffff4842cc5 in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc810: 0x5555558c1550) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:59
#8 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#9 0x00007ffff4842d3a in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc8b0: 0x5555558c13a0) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:65
#10 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#11 0x00007ffff4842d3a in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc950: 0x5555558b85e0) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:65
#12 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#13 0x00007ffff4842d3a in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffc9f0: 0x5555558b83a0) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:65
#14 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#15 0x00007ffff4842d3a in regexp::simplify::RegExpOptimize::S<object::Object> (node=@0x7fffffffca90: 0x5555558b7e00) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:65
#16 0x00007ffff483f26e in regexp::simplify::RegExpOptimize::optimizeInner<object::Object> (node=...) at ../alib2algo/src/regexp/simplify/RegExpOptimizeFormalPart.hpp:49
#17 0x00007ffff483cc6e in regexp::simplify::RegExpOptimize::optimize<object::Object> (regexp=...) at ../alib2algo/src/regexp/simplify/RegExpOptimize.h:201
#18 0x00007ffff483b8b8 in regexp::simplify::RegExpOptimize::optimize<object::Object> (regexp=...) at ../alib2algo/src/regexp/simplify/RegExpOptimize.h:196
#19 0x00007ffff48a1fa2 in std::__invoke_impl<regexp::FormalRegExp<object::Object>, regexp::FormalRegExp<object::Object> (*&)(regexp::FormalRegExp<object::Object> const&), regexp::FormalRegExp<object::Object> const&> (__f=@0x7fffffffceb0: 0x7ffff483b87a <regexp::simplify::RegExpOptimize::optimize<object::Object>(regexp::FormalRegExp<object::Object> const&)>) at /usr/include/c++/10.2.0/bits/invoke.h:60
#20 0x00007ffff48a18e2 in std::__invoke_r<regexp::FormalRegExp<object::Object>, regexp::FormalRegExp<object::Object> (*&)(regexp::FormalRegExp<object::Object> const&), regexp::FormalRegExp<object::Object> const&> (__fn=@0x7fffffffceb0: 0x7ffff483b87a <regexp::simplify::RegExpOptimize::optimize<object::Object>(regexp::FormalRegExp<object::Object> const&)>) at /usr/include/c++/10.2.0/bits/invoke.h:115
#21 0x00007ffff48a0daf in std::_Function_handler<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&), regexp::FormalRegExp<object::Object> (*)(regexp::FormalRegExp<object::Object> const&)>::_M_invoke(std::_Any_data const&, regexp::FormalRegExp<object::Object> const&) (__functor=..., __args#0=...) at /usr/include/c++/10.2.0/bits/std_function.h:292
#22 0x00007ffff48a5138 in std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>::operator()(regexp::FormalRegExp<object::Object> const&) const (this=0x7fffffffceb0, __args#0=...) at /usr/include/c++/10.2.0/bits/std_function.h:622
#23 0x00007ffff48a4fe6 in std::__invoke_impl<regexp::FormalRegExp<object::Object>, std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&>(std::__invoke_other, std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&) (__f=...) at /usr/include/c++/10.2.0/bits/invoke.h:60
#24 0x00007ffff48a4e23 in std::__invoke<std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&>(std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&) (__fn=...) at /usr/include/c++/10.2.0/bits/invoke.h:96
#25 0x00007ffff48a4c4d in std::invoke<std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&>(std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, regexp::FormalRegExp<object::Object> const&) (__fn=...) at /usr/include/c++/10.2.0/functional:89
#26 0x00007ffff48a4820 in abstraction::detail::apply_impl<regexp::FormalRegExp<object::Object> const&, std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, ext::array<std::shared_ptr<abstraction::Value>, 1ul> const&, 0ul>(std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, ext::array<std::shared_ptr<abstraction::Value>, 1ul> const&, std::integer_sequence<unsigned long, 0ul>) (f=..., t=...) at ../alib2abstraction/src/common/AbstractionHelpers.hpp:17
#27 0x00007ffff48a4892 in abstraction::apply<regexp::FormalRegExp<object::Object> const&, std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, ext::array<std::shared_ptr<abstraction::Value>, 1ul> const&>(std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>&, ext::array<std::shared_ptr<abstraction::Value>, 1ul> const&) (f=..., t=...) at ../alib2abstraction/src/common/AbstractionHelpers.hpp:24
#28 0x00007ffff48a493e in abstraction::ValueOperationAbstraction<regexp::FormalRegExp<object::Object> >::run_helper<regexp::FormalRegExp<object::Object> const&, std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)> >(std::function<regexp::FormalRegExp<object::Object> (regexp::FormalRegExp<object::Object> const&)>, ext::array<std::shared_ptr<abstraction::Value>, 1> const&) (this=0x555556021868, callback=..., inputs=...) at ../alib2abstraction/src/abstraction/ValueOperationAbstraction.hpp:26
#29 0x00007ffff48a459b in abstraction::AlgorithmAbstraction<regexp::FormalRegExp<object::Object>, regexp::FormalRegExp<object::Object> const&>::run (this=0x555556021810) at ../alib2abstraction/src/abstraction/AlgorithmAbstraction.hpp:25
#30 0x00007fffecfa31e4 in abstraction::NaryOperationAbstractionImpl<1ul>::eval (this=0x555556021838) at ../alib2abstraction/src/abstraction/NaryOperationAbstraction.hpp:65
#31 0x00007fffecfb1266 in abstraction::EvalHelper::evalAbstraction (environment=..., abstraction=std::shared_ptr<abstraction::OperationAbstraction> (use count 1, weak count 1) = {...}, params=...) at ../alib2abstraction/src/common/EvalHelper.cpp:95
#32 0x00007fffecfb0409 in abstraction::EvalHelper::evalAlgorithm (environment=..., name="regexp::simplify::RegExpOptimize", templateParams=..., params=..., category=abstraction::AlgorithmCategories::AlgorithmCategory::NONE) at ../alib2abstraction/src/common/EvalHelper.cpp:25
#33 0x0000555555696af4 in AlgorithmNode::evaluate (this=0x5555558b75c0, environment=...) at /media/data/zdrojaky/alt/webui-client/worker/src/graph/nodes/AlgorithmNode.cpp:20
#34 0x000055555568b77b in AlgorithmEvaluator::evaluate (this=0x555555e6f1d0, nodes=std::map with 16 elements = {...}) at /media/data/zdrojaky/alt/webui-client/worker/src/graph/AlgorithmEvaluator.cpp:13
#35 0x000055555567dc5a in ____C_A_T_C_H____T_E_S_T____0 () at /media/data/zdrojaky/alt/webui-client/worker/test-src/JsonFileEvaluatorTest.cpp:57
#36 0x00005555555b8be8 in Catch::TestInvokerAsFunction::invoke (this=0x5555558ad280) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:14143
#37 0x00005555555b7e19 in Catch::TestCase::invoke (this=0x5555558b6b48) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:13986
#38 0x00005555555b2504 in Catch::RunContext::invokeActiveTestCase (this=0x7fffffffdb10) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:12847
#39 0x00005555555b2253 in Catch::RunContext::runCurrentTest (this=0x7fffffffdb10, redirectedCout="", redirectedCerr="") at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:12820
#40 0x00005555555b0d27 in Catch::RunContext::runTest (this=0x7fffffffdb10, testCase=...) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:12581
#41 0x00005555555b3db9 in Catch::(anonymous namespace)::TestGroup::execute (this=0x7fffffffdb00) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:13175
#42 0x00005555555b5135 in Catch::Session::runInternal (this=0x7fffffffddf0) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:13381
#43 0x00005555555b4e3f in Catch::Session::run (this=0x7fffffffddf0) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:13337
#44 0x00005555555f3e1f in Catch::Session::run<char> (this=0x7fffffffddf0, argc=1, argv=0x7fffffffe088) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:13059
#45 0x00005555555caa10 in main (argc=1, argv=0x7fffffffe088) at /media/data/zdrojaky/alt/webui-client/worker/lib/catch2/./catch.hpp:17265
And here is webui alt attached (please do not run on webui, just extract the info :-) ) Neco.json
Edited by Tomáš Pecka