libminizinc icon indicating copy to clipboard operation
libminizinc copied to clipboard

minizinc crashes on one example: food.mzn

Open yurivict opened this issue 3 years ago • 4 comments

$ minizinc food.mzn 
Segmentation fault

#0 0x00000008004cdc30 in MiniZinc::SetLit::rehash() () from /usr/local/lib/libmzn.so #1 0x00000008003c346c in MiniZinc::SetLit::SetLit(MiniZinc::Location const&, std::__1::vector<MiniZinc::Expression*, std::__1::allocatorMiniZinc::Expression* > const&) () from /usr/local/lib/libmzn.so #2 0x00000008003bc0f0 in mzn_yyparse(void*) () from /usr/local/lib/libmzn.so #3 0x00000008006c3219 in MiniZinc::parse(MiniZinc::Env&, MiniZinc::Model*&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1: :allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::vector<std::__1::basic_string<char, std::_1::char_traits, std:: _1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::basic_string<char, std::__1::char_trait s, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::vector<std::__1::basic_string<char, std:: __1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::unordered _set<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator

, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits , std::__1::allocator > > >, bool, bool, bool, bool, std::__1::basic_ostream<char, std::__1::char_traits >&) () from /usr/local/lib/libmzn.so #4 0x00000008006c5915 in MiniZinc::parse(MiniZinc::Env&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1 ::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator , std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1:: allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > const&, std::__1::unordered_set<std::__1::basi c_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >, std::__1::equ al_to<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocat or > > >, bool, bool, bool, bool, std::__1::basic_ostream<char, std::__1::char_traits >&) () from /usr/local/lib/libmzn.so #5 0x000000080062c865 in MiniZinc::Flattener::flatten(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::ch ar_traits, std::__1::allocator > const&) () from /usr/local/lib/libmzn.so #6 0x00000008006f2376 in MiniZinc::MznSolver::flatten(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::ch


FreeBSD 13.1

yurivict avatar Jun 27 '22 23:06 yurivict

Debug build fails this way:

$ minizinc food.mzn
Error: Gecode: Float::linear: Number out of limits
=====ERROR=====

yurivict avatar Jun 27 '22 23:06 yurivict

food.mzn causes the failure.

yurivict avatar Jun 27 '22 23:06 yurivict

I can't seem to reproduce the crash on Windows/Linux - was this using one of our binaries?

I think the Gecode error is expected (var float without domains can often be problematic) - it would probably work with a solver like Gurobi or SCIP.

cyderize avatar Jun 28 '22 23:06 cyderize

This is with binaries from FreeBSD packages.

yurivict avatar Jun 29 '22 00:06 yurivict