With the latest trunk as of 1115e3f08e8f30e7e412294a563a78a15d0373c1 abidw --abidiff /usr/lib64/libjavascriptcoregtk-4.0.so.18.18.7 asserts in abg-reader.cc:1389 This is with: /usr/lib64/libjavascriptcoregtk-4.0.so.18.18.7 from webkit2gtk3-jsc-2.32.3-1.fc34.x86_64 This appears to be a new assert with one of the last few commits. I think that the last commit that I tested before this was: 2981a454bb8de3bdb55ac58875b258c2fa320ccb Note there was a previous problem with this library https://sourceware.org/bugzilla/show_bug.cgi?id=27327 which was resolved in 1.8.2 but some additional problem seems to have been introduced recently. /home/ben/Shared/Work/test/libabigail-x86_64/bin/abidw --abidiff /usr/lib64/libjavascriptcoregtk-4.0.so.18.18.7 Downloading separate debug info for /home/ben/Shared/Work/BuildSI/build-abi-tests/libabigail/system-supplied DSO at 0x7ffff7fc9000... Downloading separate debug info for /lib64/libpthread.so.0... Downloading separate debug info for /home/ben/.cache/debuginfod_client/219a7f6a92210920b2b6c86ef84d842b33324b0f/debuginfo... [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Downloading separate debug info for /lib64/libelf.so.1... Downloading separate debug info for /home/ben/.cache/debuginfod_client/1c112986384fe884e7281f32a10f0d19e1618d32/debuginfo... Downloading separate debug info for /lib64/libdw.so.1... Downloading separate debug info for /lib64/libm.so.6... Downloading separate debug info for /lib64/libc.so.6... Downloading separate debug info for /lib64/libdl.so.2... Downloading separate debug info for /lib64/libdebuginfod.so.1... Downloading separate debug info for /lib64/libresolv.so.2... abidw: ../../../libabigail/src/abg-reader.cc:1389: abigail::ir::type_base_sptr abigail::xml_reader::read_context::build_or_get_type_decl(const string&, bool): Assertion `__abg_cond__' failed. Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 Downloading source file /usr/src/debug/glibc-2.33-20.fc34.x86_64/signal/../sysdeps/unix/sysv/linux/raise.c... 49 return ret; #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff75148a4 in __GI_abort () at abort.c:79 #2 0x00007ffff7514789 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:92 #3 0x00007ffff7523a16 in __GI___assert_fail (assertion=0x7ffff7f34e15 "__abg_cond__", file=0x7ffff7f47710 "../../../libabigail/src/abg-reader.cc", line=1389, function=0x7ffff7f47a58 "abigail::ir::type_base_sptr abigail::xml_reader::read_context::build_or_get_type_decl(const string&, bool)") at assert.c:101 #4 0x00007ffff7e9d355 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id=..., add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1389 #5 0x00007ffff7ea7b82 in abigail::xml_reader::build_typedef_decl (ctxt=..., node=0x79bbd850, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4465 #6 0x00007ffff7eb27ad in abigail::xml_reader::build_type (ctxt=..., node=0x79bbd850, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:5692 #7 0x00007ffff7eac1a7 in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4769 #8 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0x79bbce50, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #9 0x00007ffff7f1d2c5 in abigail::xml_reader::handle_class_decl (add_to_current_scope=true, node=0x79bbce50, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5916 #10 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=0x79bbce50, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2243 #11 0x00007ffff7f1c298 in abigail::xml_reader::build_namespace_decl (add_to_current_scope=true, node=0x79bbcc60, ctxt=...) at ../../../libabigail/src/abg-reader.cc:2939 #12 abigail::xml_reader::handle_namespace_decl (add_to_current_scope=true, node=0x79bbcc60, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5751 #13 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0x79bbcc60, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2226 #14 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #15 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-38071", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #16 0x00007ffff7ea6c57 in abigail::xml_reader::build_pointer_type_def (ctxt=..., node=0x79a69a90, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3813 #17 0x00007ffff7eb24e8 in abigail::xml_reader::build_type (ctxt=..., node=0x79a69a90, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:5686 #18 0x00007ffff7e9d26c in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id=..., add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1388 #19 0x00007ffff7ea5a89 in abigail::xml_reader::build_var_decl (ctxt=..., node=0x79b597c0, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3545 #20 0x00007ffff7eac5a6 in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4806 #21 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0x79b58d50, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #22 0x00007ffff7f1d2c5 in abigail::xml_reader::handle_class_decl (add_to_current_scope=true, node=0x79b58d50, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5916 #23 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=0x79b58d50, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2243 #24 0x00007ffff7f1c298 in abigail::xml_reader::build_namespace_decl (add_to_current_scope=true, node=0x79b58a80, ctxt=...) at ../../../libabigail/src/abg-reader.cc:2939 #25 abigail::xml_reader::handle_namespace_decl (add_to_current_scope=true, node=0x79b58a80, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5751 #26 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0x79b58a80, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2226 #27 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #28 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-156326", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #29 0x00007ffff7eab67c in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4730 #30 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0x79b31b10, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #31 0x00007ffff7f1d2c5 in abigail::xml_reader::handle_class_decl (add_to_current_scope=true, node=0x79b31b10, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5916 #32 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=0x79b31b10, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2243 #33 0x00007ffff7f1c298 in abigail::xml_reader::build_namespace_decl (add_to_current_scope=true, node=0x79b318b0, ctxt=...) at ../../../libabigail/src/abg-reader.cc:2939 #34 abigail::xml_reader::handle_namespace_decl (add_to_current_scope=true, node=0x79b318b0, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5751 #35 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0x79b318b0, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2226 #36 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #37 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-156246", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #38 0x00007ffff7ea81db in abigail::xml_reader::build_qualified_type_decl (ctxt=..., node=0x799cec90, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3725 #39 0x00007ffff7eb2424 in abigail::xml_reader::build_type (ctxt=..., node=0x799cec90, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:5685 #40 0x00007ffff7e9d26c in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id=..., add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1388 #41 0x00007ffff7ea6c57 in abigail::xml_reader::build_pointer_type_def (ctxt=..., node=0x799cf520, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3813 #42 0x00007ffff7eb24e8 in abigail::xml_reader::build_type (ctxt=..., node=0x799cf520, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:5686 ... <snipped for brevity> #8304 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #8305 0x00007ffff7e9c6ed in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1337 #8306 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-4671", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #8307 0x00007ffff7ea5a89 in abigail::xml_reader::build_var_decl (ctxt=..., node=0xaa61f9f0, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3545 #8308 0x00007ffff7eac5a6 in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4806 #8309 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0xaa628880, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #8310 0x00007ffff7f1d2c5 in abigail::xml_reader::handle_class_decl (add_to_current_scope=true, node=0xaa628880, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5916 #8311 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=0xaa628880, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2243 #8312 0x00007ffff7f1c298 in abigail::xml_reader::build_namespace_decl (add_to_current_scope=true, node=0xaa629260, ctxt=...) at ../../../libabigail/src/abg-reader.cc:2939 #8313 abigail::xml_reader::handle_namespace_decl (add_to_current_scope=true, node=0xaa629260, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5751 #8314 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0xaa629260, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2226 #8315 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #8316 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-5157", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #8317 0x00007ffff7ea5a89 in abigail::xml_reader::build_var_decl (ctxt=..., node=0x7bbf9190, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:3545 #8318 0x00007ffff7eac5a6 in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4806 #8319 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0x8dfe6300, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #8320 0x00007ffff7eb27fc in abigail::xml_reader::build_type (ctxt=..., node=0x8dfe6300, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:5693 #8321 0x00007ffff7eac1a7 in abigail::xml_reader::build_class_decl (ctxt=..., node=<optimized out>, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4769 #8322 0x00007ffff7eadb79 in abigail::xml_reader::build_class_decl_if_not_suppressed (ctxt=..., node=0xa5b39260, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4489 #8323 0x00007ffff7f1d2c5 in abigail::xml_reader::handle_class_decl (add_to_current_scope=true, node=0xa5b39260, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5916 #8324 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=0xa5b39260, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2243 #8325 0x00007ffff7f1c298 in abigail::xml_reader::build_namespace_decl (add_to_current_scope=true, node=0x4aada440, ctxt=...) at ../../../libabigail/src/abg-reader.cc:2939 #8326 abigail::xml_reader::handle_namespace_decl (add_to_current_scope=true, node=0x4aada440, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5751 #8327 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0x4aada440, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2226 #8328 0x00007ffff7e9c781 in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1339 #8329 0x00007ffff7e9c6ed in abigail::xml_reader::read_context::get_scope_for_node (this=0xa18c1a40, node=<optimized out>, access=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1337 #8330 0x00007ffff7e9d181 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0xa18c1a40, id="type-id-1", add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1374 #8331 0x00007ffff7ea8f91 in abigail::xml_reader::build_array_type_def (ctxt=..., node=0x94561de0, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4215 #8332 0x00007ffff7f1c8c2 in abigail::xml_reader::handle_array_type_def (add_to_current_scope=true, node=0x94561de0, ctxt=...) at ../../../libabigail/src/abg-reader.cc:5834 #8333 abigail::xml_reader::handle_element_node(abigail::xml_reader::read_context&, _xmlNode*, bool) [clone .constprop.0] (ctxt=..., node=node@entry=0x94561de0, add_to_current_scope=true) at ../../../libabigail/src/abg-reader.cc:2234 #8334 0x00007ffff7ea0b5e in abigail::xml_reader::read_translation_unit (node=<optimized out>, tu=..., ctxt=...) at ../../../libabigail/src/abg-reader.cc:1488 #8335 abigail::xml_reader::get_or_read_and_add_translation_unit (ctxt=..., node=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1539 #8336 0x00007ffff7ea1046 in abigail::xml_reader::read_translation_unit_from_input (ctxt=...) at ../../../libabigail/src/abg-reader.cc:1596 #8337 0x00007ffff7ea40c3 in abigail::xml_reader::read_corpus_from_input (ctxt=...) at ../../../libabigail/src/abg-reader.cc:2021 #8338 0x00000000004057b1 in load_corpus_and_write_abixml (opts=..., context=std::shared_ptr<abigail::dwarf_reader::read_context> (empty) = {...}, env=std::shared_ptr<abigail::ir::environment> (use count 1, weak count 0) = {...}, argv=0x7fffffffd828) at /usr/include/c++/11/bits/shared_ptr_base.h:979 #8339 main (argc=<optimized out>, argv=0x7fffffffd828) at ../../../libabigail/tools/abidw.cc:893
This one appears fixed in master now. I am not sure exactly what patch fixes it, but I can't reproduce it anymore with this one: c00add2a Bug 27086 - Consider all C++ virtual destructors when there are many. I am testing using Rawhide, and the package I used is this one: webkit2gtk3-jsc-2.33.3-3.fc36.x86_64 Thanks for reporting this.
I just pulled git and retested this one with head as c00add2a211d7d6a380ce5a248accca978975933 and the problem still reproduces for me: $ abidw --abidiff /usr/lib64/libjavascriptcoregtk-4.0.so.18.18.7 abidw: ../../../libabigail/src/abg-reader.cc:1389: abigail::ir::type_base_sptr abigail::xml_reader::read_context::build_or_get_type_decl(const string&, bool): Assertion `__abg_cond__' failed. Aborted (core dumped) Could you retest your latest with webkit2gtk3-jsc-2.32.3-1.fc34.x86_64 rather than the one from rawhide. Maybe there is something subtle about that version that crashing on my system that is fixed in rawhide.
Just reconfirmed that this continues to happen as of trunk faba5ababb6622a9f0a6c482645bbd78c2541a2f The line number changed slightly though. It is now line 1400. Starting program: /home/ben/Shared/Work/test/libabigail-x86_64/bin/abidw --abidiff /usr/lib64/libjavascriptcoregtk-4.0.so.18.18.8 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". abidw: ../../../libabigail/src/abg-reader.cc:1400: abigail::ir::type_base_sptr abigail::xml_reader::read_context::build_or_get_type_decl(const string&, bool): Assertion `__abg_cond__' failed. Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 49 return ret; #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff75148a4 in __GI_abort () at abort.c:79 #2 0x00007ffff7514789 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:92 #3 0x00007ffff7523a16 in __GI___assert_fail (assertion=0x7ffff7f34f15 "__abg_cond__", file=0x7ffff7f476b0 "../../../libabigail/src/abg-reader.cc", line=1400, function=0x7ffff7f479f8 "abigail::ir::type_base_sptr abigail::xml_reader::read_context::build_or_get_type_decl(const string&, bool)") at assert.c:101 #4 0x00007ffff7e9cb05 in abigail::xml_reader::read_context::build_or_get_type_decl (this=0x8c836ca0, id=..., add_decl_to_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:1400 #5 0x00007ffff7ea7342 in abigail::xml_reader::build_typedef_decl (ctxt=..., node=0xe45ca940, add_to_current_scope=<optimized out>) at ../../../libabigail/src/abg-reader.cc:4542 <snip> #8368 0x00007ffff7ea3873 in abigail::xml_reader::read_corpus_from_input (ctxt=...) at ../../../libabigail/src/abg-reader.cc:2035 #8369 0x00000000004057b1 in load_corpus_and_write_abixml (opts=..., context=std::shared_ptr<abigail::dwarf_reader::read_context> (empty) = {...}, env=std::shared_ptr<abigail::ir::environment> (use count 1, weak count 0) = {...}, argv=0x7fffffffd818) at /usr/include/c++/11/bits/shared_ptr_base.h:979 #8370 main (argc=<optimized out>, argv=0x7fffffffd818) at ../../../libabigail/tools/abidw.cc:915 [ben@alien libabigail]$
This should hopefully now be fixed by https://sourceware.org/git/?p=libabigail.git;a=commit;h=7f57aa7959ef4a715822b0d3fb2647bbad90afc8. Should be available in libabigail 2.1. Thanks!