--- Begin Message ---
Package: libstdc++-5-dev
Version: 5.3.1-13
Control: affects -1 kodi
Dear Maintainer,
Kodi fails to build on armel and armhf due to a crashing test:
https://buildd.debian.org/status/fetch.php?pkg=kodi&arch=armhf&ver=16.0%2Bdfsg1-2&stamp=1458793597
...
[----------] 1 test from TestScraperUrl
[ RUN ] TestScraperUrl.General
[ OK ] TestScraperUrl.General (0 ms)
[----------] 1 test from TestScraperUrl (0 ms total)
[----------] 3 tests from TestSortUtils
[ RUN ] TestSortUtils.Sort_SortBy
/bin/bash: line 1: 15871 Segmentation fault
/«BUILDDIR»/kodi-16.0+dfsg1/$check_program
Makefile:608: recipe for target 'check' failed
make[1]: *** [check] Error 139
make[1]: Leaving directory '/«BUILDDIR»/kodi-16.0+dfsg1'
...
I have reproduced the issue on abel.debian.org with Address Sanitizer:
...
[----------] 1 test from TestScraperUrl
[ RUN ] TestScraperUrl.General
[ OK ] TestScraperUrl.General (0 ms)
[----------] 1 test from TestScraperUrl (0 ms total)
[----------] 3 tests from TestSortUtils
[ RUN ] TestSortUtils.Sort_SortBy
ASAN:SIGSEGV
=================================================================
==18199==ERROR: AddressSanitizer: SEGV on unknown address 0x00000000 (pc
0x0045dbac bp 0xac70f6b4 sp 0xbeb800d0 T0)
#0 0x45dbab in std::pair<Field const, CVariant>::pair<Field&&,
0u>(std::tuple<Field&&>&, std::tuple<>&, std::_Index_tuple<0u>,
std::_Index_tuple<>) /usr/include/c++/5/tuple:1172
#1 0x45dbab in std::pair<Field const,
CVariant>::pair<Field&&>(std::piecewise_construct_t, std::tuple<Field&&>,
std::tuple<>) /usr/include/c++/5/tuple:1161
#2 0x45dbab in void
__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<Field const, CVariant> >
>::construct<std::pair<Field const, CVariant>, std::piecewise_construct_t
const&, std::tuple<Field&&>, std::tuple<> >(std::pair<Field const, CVariant>*,
std::piecewise_construct_t const&, std::tuple<Field&&>&&, std::tuple<>&&)
/usr/include/c++/5/ext/new_allocator.h:120
#3 0x45dbab in void
std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<Field const,
CVariant> > > >::construct<std::pair<Field const, CVariant>,
std::piecewise_construct_t const&, std::tuple<Field&&>, std::tuple<>
>(std::allocator<std::_Rb_tree_node<std::pair<Field const, CVariant> > >&,
std::pair<Field const, CVariant>*, std::piecewise_construct_t const&,
std::tuple<Field&&>&&, std::tuple<>&&)
/usr/include/c++/5/bits/alloc_traits.h:530
#4 0x45dbab in void std::_Rb_tree<Field, std::pair<Field const, CVariant>,
std::_Select1st<std::pair<Field const, CVariant> >, std::less<Field>,
std::allocator<std::pair<Field const, CVariant> >
>::_M_construct_node<std::piecewise_construct_t const&, std::tuple<Field&&>,
std::tuple<> >(std::_Rb_tree_node<std::pair<Field const, CVariant> >*,
std::piecewise_construct_t const&, std::tuple<Field&&>&&, std::tuple<>&&)
/usr/include/c++/5/bits/stl_tree.h:529
#5 0x45dbab in std::_Rb_tree_node<std::pair<Field const, CVariant> >*
std::_Rb_tree<Field, std::pair<Field const, CVariant>,
std::_Select1st<std::pair<Field const, CVariant> >, std::less<Field>,
std::allocator<std::pair<Field const, CVariant> >
>::_M_create_node<std::piecewise_construct_t const&, std::tuple<Field&&>,
std::tuple<> >(std::piecewise_construct_t const&, std::tuple<Field&&>&&,
std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:546
#6 0x45dbab in std::_Rb_tree_iterator<std::pair<Field const, CVariant> >
std::_Rb_tree<Field, std::pair<Field const, CVariant>,
std::_Select1st<std::pair<Field const, CVariant> >, std::less<Field>,
std::allocator<std::pair<Field const, CVariant> >
>::_M_emplace_hint_unique<std::piecewise_construct_t const&,
std::tuple<Field&&>, std::tuple<>
>(std::_Rb_tree_const_iterator<std::pair<Field const, CVariant> >,
std::piecewise_construct_t const&, std::tuple<Field&&>&&, std::tuple<>&&)
/usr/include/c++/5/bits/stl_tree.h:2170
#7 0xf200d7 in std::map<Field, CVariant, std::less<Field>,
std::allocator<std::pair<Field const, CVariant> > >::operator[](Field&&)
/usr/include/c++/5/bits/stl_map.h:502
#8 0xf200d7 in TestSortUtils_Sort_SortBy_Test::TestBody()
/home/rbalint/kodi-16.0+dfsg1/xbmc/utils/test/TestSortUtils.cpp:32
#9 0xe2f443 in void
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
void>(testing::Test*, void (testing::Test::*)(), char const*)
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2078
#10 0xe2f443 in void
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
void>(testing::Test*, void (testing::Test::*)(), char const*)
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2114
#11 0xe277ff in testing::Test::Run()
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2151
#12 0xe2799f in testing::TestInfo::Run()
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2326
#13 0xe27aa3 in testing::TestCase::Run()
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2444
#14 0xe27dd3 in testing::internal::UnitTestImpl::RunAllTests()
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:4315
#15 0xe281a3 in bool
testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool>(testing::internal::UnitTestImpl*, bool
(testing::internal::UnitTestImpl::*)(), char const*)
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2078
#16 0xe281a3 in bool
testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
bool>(testing::internal::UnitTestImpl*, bool
(testing::internal::UnitTestImpl::*)(), char const*)
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:2114
#17 0xe281a3 in testing::UnitTest::Run()
/home/rbalint/kodi-16.0+dfsg1/lib/gtest/src/gtest.cc:3926
#18 0x3efcef in RUN_ALL_TESTS() /usr/include/gtest/gtest.h:2288
#19 0x3efcef in main
/home/rbalint/kodi-16.0+dfsg1/xbmc/test/xbmc-test.cpp:52
#20 0xb3a37beb in __libc_start_main
(/lib/arm-linux-gnueabi/libc.so.6+0x16beb)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /usr/include/c++/5/tuple:1172 std::pair<Field
const, CVariant>::pair<Field&&, 0u>(std::tuple<Field&&>&, std::tuple<>&,
std::_Index_tuple<0u>, std::_Index_tuple<>)
==18199==ABORTING
The test on other architectures does not fail. I'm assigning it to
libstdc++-5-dev because it looks like an STL issue in handling the Field
constant.
Thanks,
Balint
--- End Message ---