Source: liborcus Version: 0.17.2-4 Severity: normal Tags: ftbfs Dear Maintainer,
The build fails on real hppa hardware (i.e., not qemu): FAIL orcus-test-xml-mapped (exit status: 139) ============================================================================ Testsuite summary for liborcus 0.17.2 ============================================================================ # TOTAL: 10 # PASS: 9 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 Full log is here: https://buildd.debian.org/status/fetch.php?pkg=liborcus&arch=hppa&ver=0.17.2-4&stamp=1697970148&raw=0 Console output: do_page_fault() command='orcus-test-xml-' type=15 address=0xf5aca03a in libc.so.6[f7429000+1bc000] trap #15: Data TLB miss fault, vm_start = 0xf5ad4000, vm_end = 0xf5ad5000 strace output: [...] statx(AT_FDCWD, "../test/xml-mapped/attribute-namespace/input.xml", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=410, ...}) = 0 openat(AT_FDCWD, "../test/xml-mapped/attribute-namespace/input.xml", O_RDONLY) = 3 mmap2(NULL, 410, PROT_READ, MAP_SHARED, 3, 0) = 0xf7aca000 munmap(0xf56cf000, 345) = 0 close(5) = 0 openat(AT_FDCWD, "out.xml", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5 write(5, "<?xml version=\"1.0\"?>\n<a:data xm"..., 378) = 378 close(5) = 0 statx(AT_FDCWD, "../test/xml-mapped/attribute-namespace/input.xml", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=410, ...}) = 0 openat(AT_FDCWD, "../test/xml-mapped/attribute-namespace/input.xml", O_RDONLY) = 5 mmap2(NULL, 410, PROT_READ, MAP_SHARED, 5, 0) = 0xf56ca000 munmap(0xf56ca000, 410) = 0 close(5) = 0 statx(AT_FDCWD, "out.xml", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=378, ...}) = 0 openat(AT_FDCWD, "out.xml", O_RDONLY) = 5 mmap2(NULL, 378, PROT_READ, MAP_SHARED, 5, 0) = 0xf54d4000 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xf56ca03a} --- +++ killed by SIGSEGV (core dumped) +++ Segmentation fault Running under gdb with breaks on __GI_munmap and __GI_memcmp, we have: Breakpoint 1.1, __GI_munmap () at ../sysdeps/unix/syscall-template.S:120 120 ../sysdeps/unix/syscall-template.S: No such file or directory. (gdb) p/x $r26 $12 = 0xf72ca000 (gdb) bt #0 __GI_munmap () at ../sysdeps/unix/syscall-template.S:120 #1 0xfa489f84 in boost::interprocess::mapped_region::priv_close (this=0x1e43c0) at /usr/include/boost/interprocess/mapped_region.hpp:841 #2 0xfa489b28 in boost::interprocess::mapped_region::~mapped_region (this=0x1e43c0, __in_chrg=<optimized out>) at /usr/include/boost/interprocess/mapped_region.hpp:276 #3 0xfa48e5d8 in orcus::file_content::impl::~impl (this=0x1e4398, __in_chrg=<optimized out>) at stream.cpp:152 #4 0xfa48e65c in std::default_delete<orcus::file_content::impl>::operator() (this=0xf8f02970, __ptr=0x1e4398) at /usr/include/c++/13/bits/unique_ptr.h:99 #5 0xfa48c814 in std::unique_ptr<orcus::file_content::impl, std::default_delete<orcus::file_content::impl> >::~unique_ptr ( this=0xf8f02970, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404 #6 0xfa484590 in orcus::file_content::~file_content (this=0xf8f02970, __in_chrg=<optimized out>) at stream.cpp:186 #7 0x000194d0 in operator() (__closure=0xf8f02564, dump_content="ns0=\"http://ns-1\"\nns1=\"http://ns-2\"\n/ns0:data\n/ns0:data/ns1:entries\n/ns0:data/ns1:entries/ns1:entry\n/ns0:data/ns1:entries/ns1:entry@ns1:date-processed=\"2011-01-03\"\n/ns0:data/ns1:entries/ns1:entry@ns1:"..., filepath=0x1e4678 "../test/xml-mapped/attribute-namespace/input.xml", cxt=...) at orcus_test_xml_mapped.cpp:77 #8 0x0001a0fc in (anonymous namespace)::test_mapped_xml_import () at orcus_test_xml_mapped.cpp:150 #9 0x0001c01c in main () at orcus_test_xml_mapped.cpp:280 (gdb) c Continuing. Breakpoint 2, __GI_memcmp (s1=0xf6fb5024, s2=0xf72ca03a, len=1) at memcmp.c:306 306 memcmp.c: No such file or directory. (gdb) bt #0 __GI_memcmp (s1=0xf6fb5024, s2=0xf72ca03a, len=1) at memcmp.c:306 #1 0x0001d65c in std::char_traits<char>::compare ( __s1=0xf6fb5024 "a=\"http://ns-1\" xmlns:b=\"http://ns-2\">\n <b:entries><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2011-01-03\" b:received-by=\"JKB\"/><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2"..., __s2=0xf72ca03a <error: Cannot access memory at address 0xf72ca03a>, __n=1) at /usr/include/c++/13/bits/char_traits.h:399 #2 0x000218d4 in std::basic_string_view<char, std::char_traits<char> >::compare (this=0xf8f03258, __str=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/string_view:345 #3 0x000206dc in std::operator==<char, std::char_traits<char> > (__x="a", __y=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/string_view:610 #4 0xfa666714 in std::equal_to<std::basic_string_view<char, std::char_traits<char> > >::operator() (this=0x65ebc, __x="a", __y=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/bits/stl_function.h:378 #5 0xfa4c186c in std::__detail::_Hashtable_base<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > >, std::__detail::_Select1st, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, false, true> >::_M_key_equals ( this=0x65ebc, __k="a", __n=...) at /usr/include/c++/13/bits/hashtable_policy.h:1728 #6 0xfa4beeb8 in std::_Hashtable<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > > >, std::__detail::_Select1st, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find (this=0x65ebc, __k="a") at /usr/include/c++/13/bits/hashtable.h:1657 #7 0xfa4bc678 in std::unordered_map<std::basic_string_view<char, std::char_traits<char> >, std::vector<char const*, std::allocator<char c--Type <RET> for more, q to quit, c to continue without paging-- onst*> >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > > > >::find (this=0x65ebc, __x="a") at /usr/include/c++/13/bits/unordered_map.h:876 #8 0xfa4b454c in orcus::xmlns_context::push (this=0xf8f02628, key="a", uri="http://ns-1") at xml_namespace.cpp:238 #9 0xfa697e28 in orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper::attribute (this=0xf8f02a88, attr=...) at ../../include/orcus/sax_ns_parser.hpp:235 #10 0xfa695fd4 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::attribute (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:570 #11 0xfa69714c in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::element_open (this=0xf8f02b14, begin_pos=22) at ../../include/orcus/sax_parser.hpp:290 #12 0xfa6948c8 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::element (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:246 #13 0xfa692da8 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::body (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:214 #14 0xfa69161c in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::parse (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:182 #15 0xfa68f688 in orcus::sax_ns_parser<orcus::dom::document_tree::impl>::parse (this=0xf8f02a88) at ../../include/orcus/sax_ns_parser.hpp:277 #16 0xfa674838 in orcus::dom::document_tree::load (this=0xf8f02974, strm="<?xml version=\"1.0\"?>\n<a:data xmlns:a=\"http://ns-1\" xmlns:b=\"http://ns-2\">\n <b:entries><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2011-01-03\" b:received-by=\"JKB\"/><b:entry b:date-recei"...) at dom_tree.cpp:586 #17 0x00019438 in operator() (__closure=0xf8f02564, dump_content="", filepath=0xf8f02664 "out.xml", cxt=...) at orcus_test_xml_mapped.cpp:73 --Type <RET> for more, q to quit, c to continue without paging-- #18 0x0001a144 in (anonymous namespace)::test_mapped_xml_import () at orcus_test_xml_mapped.cpp:151 #19 0x0001c01c in main () at orcus_test_xml_mapped.cpp:280 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. __GI_memcmp (s1=<optimized out>, s2=<optimized out>, len=<optimized out>) at memcmp.c:346 346 in memcmp.c (gdb) bt #0 __GI_memcmp (s1=<optimized out>, s2=<optimized out>, len=<optimized out>) at memcmp.c:346 #1 0x0001d65c in std::char_traits<char>::compare ( __s1=0xf6fb5024 "a=\"http://ns-1\" xmlns:b=\"http://ns-2\">\n <b:entries><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2011-01-03\" b:received-by=\"JKB\"/><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2"..., __s2=0xf72ca03a <error: Cannot access memory at address 0xf72ca03a>, __n=1) at /usr/include/c++/13/bits/char_traits.h:399 #2 0x000218d4 in std::basic_string_view<char, std::char_traits<char> >::compare (this=0xf8f03258, __str=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/string_view:345 #3 0x000206dc in std::operator==<char, std::char_traits<char> > (__x="a", __y=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/string_view:610 #4 0xfa666714 in std::equal_to<std::basic_string_view<char, std::char_traits<char> > >::operator() (this=0x65ebc, __x="a", __y=<error: Cannot access memory at address 0xf72ca03a>) at /usr/include/c++/13/bits/stl_function.h:378 #5 0xfa4c186c in std::__detail::_Hashtable_base<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > >, std::__detail::_Select1st, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, false, true> >::_M_key_equals ( this=0x65ebc, __k="a", __n=...) at /usr/include/c++/13/bits/hashtable_policy.h:1728 #6 0xfa4beeb8 in std::_Hashtable<std::basic_string_view<char, std::char_traits<char> >, std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > > >, std::__detail::_Select1st, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find (this=0x65ebc, __k="a") at /usr/include/c++/13/bits/hashtable.h:1657 #7 0xfa4bc678 in std::unordered_map<std::basic_string_view<char, std::char_traits<char> >, std::vector<char const*, std::allocator<char c--Type <RET> for more, q to quit, c to continue without paging-- onst*> >, std::hash<std::basic_string_view<char, std::char_traits<char> > >, std::equal_to<std::basic_string_view<char, std::char_traits<char> > >, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> > const, std::vector<char const*, std::allocator<char const*> > > > >::find (this=0x65ebc, __x="a") at /usr/include/c++/13/bits/unordered_map.h:876 #8 0xfa4b454c in orcus::xmlns_context::push (this=0xf8f02628, key="a", uri="http://ns-1") at xml_namespace.cpp:238 #9 0xfa697e28 in orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper::attribute (this=0xf8f02a88, attr=...) at ../../include/orcus/sax_ns_parser.hpp:235 #10 0xfa695fd4 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::attribute (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:570 #11 0xfa69714c in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::element_open (this=0xf8f02b14, begin_pos=22) at ../../include/orcus/sax_parser.hpp:290 #12 0xfa6948c8 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::element (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:246 #13 0xfa692da8 in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::body (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:214 #14 0xfa69161c in orcus::sax_parser<orcus::sax_ns_parser<orcus::dom::document_tree::impl>::handler_wrapper, orcus::sax_parser_default_config>::parse (this=0xf8f02b14) at ../../include/orcus/sax_parser.hpp:182 #15 0xfa68f688 in orcus::sax_ns_parser<orcus::dom::document_tree::impl>::parse (this=0xf8f02a88) at ../../include/orcus/sax_ns_parser.hpp:277 #16 0xfa674838 in orcus::dom::document_tree::load (this=0xf8f02974, strm="<?xml version=\"1.0\"?>\n<a:data xmlns:a=\"http://ns-1\" xmlns:b=\"http://ns-2\">\n <b:entries><b:entry b:date-received=\"2011-01-01\" b:date-processed=\"2011-01-03\" b:received-by=\"JKB\"/><b:entry b:date-recei"...) at dom_tree.cpp:586 #17 0x00019438 in operator() (__closure=0xf8f02564, dump_content="", filepath=0xf8f02664 "out.xml", cxt=...) at orcus_test_xml_mapped.cpp:73 --Type <RET> for more, q to quit, c to continue without paging-- #18 0x0001a144 in (anonymous namespace)::test_mapped_xml_import () at orcus_test_xml_mapped.cpp:151 #19 0x0001c01c in main () at orcus_test_xml_mapped.cpp:280 (gdb) c Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. The fault occurs in __GI_memcmp for an address in the region unmapped with the call "munmap(0xf56ca000, 410)". This address seems to arise at hashtable_policy.h:1728. Exactly the same binary runs successfully under qemu. Maybe there is a timing issue in the orcus::file_content::~file_content destructor? Regards, Dave Anglin -- System Information: Debian Release: trixie/sid APT prefers buildd-unstable APT policy: (500, 'buildd-unstable'), (500, 'unstable') Architecture: hppa (parisc64) Kernel: Linux 6.1.59+ (SMP w/4 CPU threads) Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system)