ola icon indicating copy to clipboard operation
ola copied to clipboard

sparc failures

Open yoe opened this issue 8 years ago • 6 comments

ola fails to build on Debian sparc:

https://buildd.debian.org/status/fetch.php?pkg=ola&arch=sparc64&ver=0.10.3.nojsmin-2&stamp=1489772178&raw=0

FAIL: libs/acn/E131Tester
=========================

[...]
.libs/acn/BaseInflator.cpp:277: In BaseInflator::HandlePDUData, someone forgot to add a handler, vector id 3
.libs/acn/BaseInflator.cpp:277: In BaseInflator::HandlePDUData, someone forgot to add a handler, vector id 3
.libs/acn/PDU.cpp:56: PDU Pack: buffer too small, required 42, got 41
.libs/acn/PDU.cpp:56: PDU Pack: buffer too small, required 77, got 76
........../include/ola/io/MemoryBlockPool.h:50: new block allocated at @0x100001baa00
.Received Bus error
/<<PKGBUILDDIR>>/common/.libs/libolacommon.so.0(+0x1e3098)[0xffff800100413098]
/lib/sparc64-linux-gnu/libpthread.so.0(+0x13a60)[0xffff800100c53a60]
/<<PKGBUILDDIR>>/libs/acn/.libs/E131Tester(+0x1eed0)[0x1000001eed0]
/<<PKGBUILDDIR>>/libs/acn/.libs/E131Tester(+0x1e93c)[0x1000001e93c]
/<<PKGBUILDDIR>>/libs/acn/.libs/E131Tester(+0x5e178)[0x1000005e178]
/<<PKGBUILDDIR>>/libs/acn/.libs/E131Tester(+0x6d3a8)[0x1000006d3a8]
[...]

and


FAIL: libs/acn/TransportTester
==============================

[...]
libs/acn/TCPTransport.cpp:93: done read, bytes outstanding is 0
libs/acn/TCPTransport.cpp:99: state is 3
libs/acn/TCPTransport.cpp:206: Got PDU, data length is 14, expected 14
Received Bus error
/<<PKGBUILDDIR>>/common/.libs/libolacommon.so.0(+0x1e3098)[0xffff800100413098]
/lib/sparc64-linux-gnu/libpthread.so.0(+0x13a60)[0xffff800100c53a60]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0xff70)[0x1000000ff70]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0xf270)[0x1000000f270]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0xd974)[0x1000000d974]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0x1701c)[0x1000001701c]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0x16298)[0x10000016298]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0x1bc44)[0x1000001bc44]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(+0x1ab34)[0x1000001ab34]
/<<PKGBUILDDIR>>/libs/acn/.libs/TransportTester(_ZN3ola3acn16TCPTransportTest7ReceiveEv+0x2c)[0x10000009d38]
[...]

(edited both error messages for length; for the full messages, see the build log above)

A bus error usually signals unaligned access, which is probably a result from pointer magic that isn't strictly according to spec.

Note: SPARC isn't a release candidate architecture in Debian, so the continued support of ola in Debian stretch does not depend on this. However, it might be a good idea to look into this anyway.

yoe avatar Mar 22 '17 14:03 yoe

I think I found the answer to my question, but as a first thing I'd probably like to add some more debugging to try and find out exactly where it's failing. If I do a branch on GitHub with some changes, can you get that built on SPARC? If so, roughly what sort of round trip times are we talking about?

Incidentally I see hurd-i386 is failing for a reason which may be something we can fix too, or is that not worth worrying about? Or alternatively we could drop that bit of functionality on hurd (which is only used in one RDM PID), so potentially the rest of OLA would work still.

peternewman avatar Mar 23 '17 01:03 peternewman

I could do that, but if you think we'd have to do a lot of round trips it might be easier if we go down this route:

https://dsa.debian.org/doc/guest-account/

That's going to involve a bit more administrative work, but once done you can always reactivate your account for future issues, too.

Re: hurd: if you think it's worth it, then it's worth it. I'll just say that hurd sometimes lacks certain functionality, and that therefore it might be more trouble than it's worth.

yoe avatar Mar 23 '17 06:03 yoe

I'm also seeing some sort of similar libs/acn/TransportTester failures on Windows, so hopefully they'll be the same cause...

peternewman avatar Apr 16 '17 10:04 peternewman

Both tests are still failing on sparc64 for the current version of ola, see: https://buildd.debian.org/status/fetch.php?pkg=ola&arch=sparc64&ver=0.10.9.nojsmin-7.1&stamp=1757499977&raw=0

Access to SPARC machines for testing can be obtained through the GCC Compile Farm: https://gcc.gnu.org/wiki/CompileFarm

I can also test any test branches on my Debian sparc64 machine.

glaubitz avatar Sep 10 '25 10:09 glaubitz

Here is the backtrace for E131Tester:

#0  0x000001000001c5ac in CppUnit::assertion_traits<unsigned int>::equal(unsigned int const&, unsigned int const&) ()
#1  0x000001000001b730 in void CppUnit::assertEquals<unsigned int>(unsigned int const&, unsigned int const&, CppUnit::SourceLine, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#2  0x00000100000639c4 in ola::acn::MockInflator::HandlePDUData(unsigned int, ola::acn::HeaderSet const&, unsigned char const*, unsigned int) ()
#3  0x00000100000750e8 in ola::acn::BaseInflator::InflatePDU(ola::acn::HeaderSet*, unsigned char, unsigned char const*, unsigned int) ()
#4  0x00000100000743c4 in ola::acn::BaseInflator::InflatePDUBlock(ola::acn::HeaderSet*, unsigned char const*, unsigned int) ()
#5  0x0000010000075080 in ola::acn::BaseInflator::InflatePDU(ola::acn::HeaderSet*, unsigned char, unsigned char const*, unsigned int) ()
#6  0x00000100000743c4 in ola::acn::BaseInflator::InflatePDUBlock(ola::acn::HeaderSet*, unsigned char const*, unsigned int) ()
#7  0x0000010000062c4c in ola::acn::RootInflatorTest::testInflatePDU() ()
#8  0x0000010000066c88 in void std::__invoke_impl<void, void (ola::acn::RootInflatorTest::*&)(), ola::acn::RootInflatorTest*&>(std::__invoke_memfun_deref, void (ola::acn::RootInflatorTest::*&)(), ola::acn::RootInflatorTest*&) ()
#9  0x0000010000066a38 in std::__invoke_result<void (ola::acn::RootInflatorTest::*&)(), ola::acn::RootInflatorTest*&>::type std::__invoke<void (ola::acn::RootInflatorTest::*&)(), ola::acn::RootInflatorTest*&>(void (ola::acn::RootInflatorTest::*&)(), ola::acn::RootInflatorTest*&) ()
#10 0x0000010000066820 in void std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) ()
#11 0x000001000006651c in void std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>::operator()<, void>() ()
#12 0x00000100000662c0 in void std::__invoke_impl<void, std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>&>(std::__invoke_other, std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>&) ()
#13 0x0000010000065dac in std::enable_if<std::is_void<void>::value, void>::type std::__invoke_r<void, std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>&>(std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()>&) ()
#14 0x00000100000656d8 in std::_Function_handler<void (), std::_Bind<void (ola::acn::RootInflatorTest::*(ola::acn::RootInflatorTest*))()> >::_M_invoke(std::_Any_data const&) ()
#15 0x000001000001e46c in std::function<void ()>::operator()() const ()
#16 0x0000010000066ffc in CppUnit::TestCaller<ola::acn::RootInflatorTest>::runTest() ()
#17 0xfff8000100b23c44 in CppUnit::TestCaseMethodFunctor::operator()() const () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#18 0xfff8000100b1a310 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#19 0xfff8000100b20cc4 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#20 0xfff8000100b2b540 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#21 0xfff8000100b23980 in CppUnit::TestCase::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#22 0xfff8000100b24014 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#23 0xfff8000100b24174 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#24 0xfff8000100b24014 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#25 0xfff8000100b24174 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#26 0xfff8000100b2d600 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#27 0xfff8000100b2a9ac in CppUnit::TestResult::runTest(CppUnit::Test*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#28 0xfff8000100b2d658 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#29 0xfff8000100b2f794 in CppUnit::TextTestRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#30 0x0000010000088684 in main ()

glaubitz avatar Nov 11 '25 17:11 glaubitz

The backtrace for the other crashing test TransportTester looks very similar:

#0  0x000001000000ea20 in CppUnit::assertion_traits<unsigned int>::equal(unsigned int const&, unsigned int const&) ()
#1  0x000001000000d694 in void CppUnit::assertEquals<unsigned int>(unsigned int const&, unsigned int const&, CppUnit::SourceLine, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#2  0x000001000000b900 in ola::acn::MockInflator::HandlePDUData(unsigned int, ola::acn::HeaderSet const&, unsigned char const*, unsigned int) ()
#3  0x000001000001754c in ola::acn::BaseInflator::InflatePDU(ola::acn::HeaderSet*, unsigned char, unsigned char const*, unsigned int) ()
#4  0x0000010000016828 in ola::acn::BaseInflator::InflatePDUBlock(ola::acn::HeaderSet*, unsigned char const*, unsigned int) ()
#5  0x000001000001bef4 in ola::acn::IncomingStreamTransport::HandlePDU() ()
#6  0x000001000001aee4 in ola::acn::IncomingStreamTransport::Receive() ()
#7  0x0000010000007b08 in ola::acn::TCPTransportTest::Receive() ()
#8  0x0000010000010d50 in ola::MethodCallback0_0<ola::acn::TCPTransportTest, ola::Callback0<void>, void>::DoRun() ()
#9  0x000001000000d808 in ola::Callback0<void>::Run() ()
#10 0xfff80001006cb5fc in ola::io::BidirectionalFileDescriptor::PerformRead() () from /home/glaubitz/ola/ola-0.10.9.nojsmin/common/.libs/libolacommon.so.0
#11 0xfff80001006e5d20 in ola::io::SelectPoller::CheckDescriptors(fd_set*, fd_set*) () from /home/glaubitz/ola/ola-0.10.9.nojsmin/common/.libs/libolacommon.so.0
#12 0xfff80001006e4e54 in ola::io::SelectPoller::Poll(ola::io::TimeoutManager*, ola::TimeInterval const&) () from /home/glaubitz/ola/ola-0.10.9.nojsmin/common/.libs/libolacommon.so.0
#13 0xfff80001006d8c70 in ola::io::SelectServer::CheckForEvents(ola::TimeInterval const&) () from /home/glaubitz/ola/ola-0.10.9.nojsmin/common/.libs/libolacommon.so.0
#14 0xfff80001006d713c in ola::io::SelectServer::RunOnce(ola::TimeInterval const&) () from /home/glaubitz/ola/ola-0.10.9.nojsmin/common/.libs/libolacommon.so.0
#15 0x0000010000007d74 in ola::acn::TCPTransportTest::testSinglePDU() ()
#16 0x0000010000010a24 in void std::__invoke_impl<void, void (ola::acn::TCPTransportTest::*&)(), ola::acn::TCPTransportTest*&>(std::__invoke_memfun_deref, void (ola::acn::TCPTransportTest::*&)(), ola::acn::TCPTransportTest*&) ()
#17 0x000001000001095c in std::__invoke_result<void (ola::acn::TCPTransportTest::*&)(), ola::acn::TCPTransportTest*&>::type std::__invoke<void (ola::acn::TCPTransportTest::*&)(), ola::acn::TCPTransportTest*&>(void (ola::acn::TCPTransportTest::*&)(), ola::acn::TCPTransportTest*&) ()
#18 0x00000100000108a8 in void std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) ()
#19 0x0000010000010658 in void std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>::operator()<, void>() ()
#20 0x0000010000010270 in void std::__invoke_impl<void, std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>&>(std::__invoke_other, std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>&) ()
#21 0x000001000000fcf8 in std::enable_if<std::is_void<void>::value, void>::type std::__invoke_r<void, std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>&>(std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()>&) ()
#22 0x000001000000f7cc in std::_Function_handler<void (), std::_Bind<void (ola::acn::TCPTransportTest::*(ola::acn::TCPTransportTest*))()> >::_M_invoke(std::_Any_data const&) ()
#23 0x0000010000011148 in std::function<void ()>::operator()() const ()
#24 0x0000010000010f94 in CppUnit::TestCaller<ola::acn::TCPTransportTest>::runTest() ()
#25 0xfff8000100b23c44 in CppUnit::TestCaseMethodFunctor::operator()() const () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#26 0xfff8000100b1a310 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#27 0xfff8000100b20cc4 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#28 0xfff8000100b2b540 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#29 0xfff8000100b23980 in CppUnit::TestCase::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#30 0xfff8000100b24014 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#31 0xfff8000100b24174 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#32 0xfff8000100b24014 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#33 0xfff8000100b24174 in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#34 0xfff8000100b2d600 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#35 0xfff8000100b2a9ac in CppUnit::TestResult::runTest(CppUnit::Test*) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#36 0xfff8000100b2d658 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#37 0xfff8000100b2f794 in CppUnit::TextTestRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) () from /lib/sparc64-linux-gnu/libcppunit-1.15.so.1
#38 0x000001000001e450 in main ()

glaubitz avatar Nov 11 '25 18:11 glaubitz