Page 1 of 1

[1.1.33] Crash in std::basic_regex initialization on musl with gcompat (Alpine Linux)

Posted: Thu May 13, 2021 8:17 pm
by esawady
On Alpine Linux Edge (musl 1.2.2, gcompat 1.0.0). Backtrace:

Code: Select all

#0  std::__cxx11::regex_traits<char>::isctype () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex.tcc:334
#1  std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::{lambda()#1}::operator()() const () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:626
#2  std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:636
#3  std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_make_cache () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.h:533
#4  std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.h:504
#5  0x00000000005fe4d8 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_bracket_matcher<false, false> () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:446
#6  0x00000000006013f4 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_bracket_expression () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:365
#7  0x00000000006014c0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:351
#8  0x0000000000601de8 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_term () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:141
#9  std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_term () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:136
#10 std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:123
#11 0x0000000000602019 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:99
#12 0x000000000060193c in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:343
#13 0x0000000000601de8 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_term () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:141
#14 std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_term () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:136
#15 std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:123
#16 0x0000000000601d61 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:126
#17 std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:120
#18 0x0000000000601d61 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:126
#19 std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:120
#20 0x0000000000602019 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:99
#21 0x000000000060270a in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.tcc:84
#22 0x0000000000602baf in std::__detail::__compile_nfa<std::__cxx11::regex_traits<char>, char const*> () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex_compiler.h:183
#23 0x0000000000602d23 in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::basic_regex<char const*> () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex.h:760
#24 std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::basic_regex<char const*> () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex.h:505
#25 std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::basic_regex () at /home/build/gcc-9.2/include/c++/9.2.0/bits/regex.h:438
#26 0x00000000005bc9cc in __static_initialization_and_destruction_0 () at /tmp/factorio-build-tcmSOB/libraries/cxxopts/cxxopts.hpp:459
#27 _GLOBAL__sub_I__Z19forceStaticInitMainv () at /tmp/factorio-build-tcmSOB/src/Main.cpp:1158
#28 0x00007fb9741cfc94 in ?? ()
#29 0x000000001eb03ffe in ?? ()
#30 0x0000000000000a63 in ?? ()
#31 0x0000000000002f10 in ?? ()
#32 0x00000000029e9ff8 in ?? ()
#33 0x0000000000404c10 in ?? ()
#34 0x00000000004032a8 in ?? ()
#35 0x0000000000400278 in ?? ()
#36 0x0000000000405e40 in ?? ()
#37 0x00000000000000d8 in ?? ()
#38 0x0000000000000018 in ?? ()
#39 0x0000000000001965 in ?? ()
#40 0x0000000000000018 in ?? ()
#41 0x0000000000408e28 in ?? ()
#42 0x000000000208a094 in ?? ()
#43 0x0000000000000000 in ?? ()
Full coredump: https://p.d2evs.net/1849613829.core

The issue is likely that Factorio releases are dynamically linked against glibc. Would you mind providing either a musl build or a statically linked glibc build?

Re: [1.1.33] Crash in std::basic_regex initialization on musl with gcompat (Alpine Linux)

Posted: Mon May 24, 2021 2:05 pm
by Oxyd
Unfortunately, for now the game requires glibc and we have no plans to provide an additional build. Switching from glibc to musl may be something to consider in the future, but absolutely no promises.