Bug 27011 - abort in abg-comparison.cc:9004
Summary: abort in abg-comparison.cc:9004
Status: RESOLVED WORKSFORME
Alias: None
Product: libabigail
Classification: Unclassified
Component: default (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Dodji Seketeli
URL:
Keywords:
Depends on:
Blocks: 27019
  Show dependency treegraph
 
Reported: 2020-12-04 04:32 UTC by Ben Woodard
Modified: 2021-11-24 18:32 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Woodard 2020-12-04 04:32:45 UTC
This is on aarch64 as of commit 4f8c9b17

Starting program: /home/ben/Shared/Work/test/libabigail-aarch64/bin/abidw --abidiff /lib64/libicutest.so.67.1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
abidw: ../../../libabigail/src/abg-comparison.cc:9004: void abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated(): Assertion `__abg_cond__' failed.

Program received signal SIGABRT, Aborted.
__GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49        return ret;
#0  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x0000fffff75965dc in __GI_abort () at abort.c:79
#2  0x0000fffff75a355c in __assert_fail_base (fmt=0xfffff76a7930 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xfffff7f26aa0 "__abg_cond__", file=file@entry=0xfffff7f2c238 "../../../libabigail/src/abg-comparison.cc", line=line@entry=9004, function=function@entry=0xfffff7f2e3f8 "void abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated()") at assert.c:92
#3  0x0000fffff75a35c4 in __GI___assert_fail (assertion=assertion@entry=0xfffff7f26aa0 "__abg_cond__", file=file@entry=0xfffff7f2c238 "../../../libabigail/src/abg-comparison.cc", line=line@entry=9004, function=function@entry=0xfffff7f2e3f8 "void abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated()") at assert.c:101
#4  0x0000fffff7e0f7c8 in abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated (this=0x5ded60) at ../../../libabigail/src/abg-comparison.cc:9004
#5  0x0000fffff7e13808 in abigail::comparison::compute_diff (f=std::shared_ptr<abigail::ir::corpus> (use count 3, weak count 0) = {...}, s=std::shared_ptr<abigail::ir::corpus> (use count 3, weak count 0) = {...}, ctxt=std::shared_ptr<abigail::comparison::diff_context> (use count 3, weak count 270) = {...}) at ../../../libabigail/src/abg-comparison.cc:11116
#6  0x0000000000404a74 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=0xffffffffe9e8) at ../../../libabigail/tools/abidw.cc:590
#7  main (argc=<optimized out>, argv=0xffffffffe9e8) at ../../../libabigail/tools/abidw.cc:866
Comment 1 Ben Woodard 2020-12-04 18:18:04 UTC
Note that this problem does not show up when running on x86_64 while examining the aarch64 ELF files.
Comment 2 Ben Woodard 2020-12-04 18:36:32 UTC
The converse test seems to fail in the same way. So while using x86_64 to examine aarch64 ELF files works just fine. Using aarch64 to examine both aarch64 and x86_64 versions of the same library fails.

In other words on x86_64:

$ for i in testfiles/*/*;do echo $i; abidw --abidiff $i;done
testfiles/aarch64/libHalf.so.24.0.0
testfiles/aarch64/libicutest.so.67.1
testfiles/aarch64/libraw.so.20.0.0
testfiles/aarch64/libtbb.so.2
testfiles/x86_64/libHalf.so.24.0.0
testfiles/x86_64/libicutest.so.67.1
testfiles/x86_64/libraw.so.20.0.0
testfiles/x86_64/libtbb.so.2

but on aarch64:

for i in testfiles/*/*;do echo $i;abidw --abidiff $i;done
testfiles/aarch64/libHalf.so.24.0.0
Segmentation fault (core dumped)
testfiles/aarch64/libicutest.so.67.1
abidw: ../../../libabigail/src/abg-comparison.cc:9004: void abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated(): Assertion `__abg_cond__' failed.
Aborted (core dumped)
testfiles/aarch64/libraw.so.20.0.0
Segmentation fault (core dumped)
testfiles/aarch64/libtbb.so.2
abidw: ../../../libabigail/src/abg-reader.cc:1287: 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)
testfiles/x86_64/libHalf.so.24.0.0
Segmentation fault (core dumped)
testfiles/x86_64/libicutest.so.67.1
abidw: ../../../libabigail/src/abg-comparison.cc:9004: void abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated(): Assertion `__abg_cond__' failed.
Aborted (core dumped)
testfiles/x86_64/libraw.so.20.0.0
Segmentation fault (core dumped)
testfiles/x86_64/libtbb.so.2
abidw: ../../../libabigail/src/abg-reader.cc:1287: 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)
Comment 3 Ben Woodard 2021-06-10 20:50:44 UTC
This does not appear to be a problem with the current trunk.
Comment 4 Melbet Nigeria 2021-11-24 18:32:11 UTC Comment hidden (spam)