Bug 1885401 - [abrt] libabigail: abigail::dwarf_reader::finish_member_function_reading(): abipkgdiff killed by SIGABRT
Summary: [abrt] libabigail: abigail::dwarf_reader::finish_member_function_reading(): a...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: libabigail
Version: 33
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Sinny Kumari
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:83d0be4551a6f2aaa59b7281c45...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-10-05 19:55 UTC by Jerry James
Modified: 2021-11-30 17:16 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-11-30 17:16:36 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (107.30 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: core_backtrace (16.44 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: cpuinfo (2.53 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: dso_list (3.34 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: environ (3.82 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: limits (1.29 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: maps (23.72 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: mountinfo (2.71 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: open_fds (800 bytes, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details
File: proc_pid_status (1.33 KB, text/plain)
2020-10-05 19:55 UTC, Jerry James
no flags Details

Description Jerry James 2020-10-05 19:55:20 UTC
Description of problem:
I built version 1.2.10 of brial in mock.  I downloaded the RPMs for brial-1.2.8 from koji for comparison.  I ran this command:

abipkgdiff --d1 brial-debuginfo-1.2.8-3.fc33.x86_64.rpm --d2 brial-debuginfo-1.2.10-1.fc34.x86_64.rpm --devel1 brial-devel-1.2.8-3.fc33.x86_64.rpm --devel2 brial-devel-1.2.10-1.fc34.x86_64.rpm brial-1.2.8-3.fc33.x86_64.rpm brial-1.2.10-1.fc34.x86_64.rpm

And got this output on the console:

abipkgdiff: abg-dwarf-reader.cc:14645: void abigail::dwarf_reader::finish_member_function_reading(Dwarf_Die*, const function_decl_sptr&, const class_or_union_sptr&, abigail::dwarf_reader::read_context&): Assertion `__abg_cond__' failed.
Aborted (core dumped)

Version-Release number of selected component:
libabigail-1.7-1.fc32

Additional info:
reporter:       libreport-2.13.1
backtrace_rating: 4
cgroup:         0::/user.slice/user-1000.slice/user/apps.slice/apps-org.gnome.Terminal.slice/vte-spawn-10c97464-c2e4-4a6a-9023-3e6524b5f40d.scope
cmdline:        abipkgdiff --d1 brial-debuginfo-1.2.8-3.fc33.x86_64.rpm --d2 brial-debuginfo-1.2.10-1.fc34.x86_64.rpm --devel1 brial-devel-1.2.8-3.fc33.x86_64.rpm --devel2 brial-devel-1.2.10-1.fc34.x86_64.rpm brial-1.2.8-3.fc33.x86_64.rpm brial-1.2.10-1.fc34.x86_64.rpm
crash_function: abigail::dwarf_reader::finish_member_function_reading
executable:     /usr/bin/abipkgdiff
journald_cursor: s=e7d9234ce7b541e9a6913921ebe63c42;i=12f48b;b=1b6016d539db4fbbb08370d1ef61ab3e;m=559290629;t=5b0f1bb90a200;x=e0182d0b95716a14
kernel:         5.8.12-200.fc32.x86_64
rootdir:        /
runlevel:       N 5
type:           CCpp
uid:            1000

Comment 1 Jerry James 2020-10-05 19:55:22 UTC
Created attachment 1719146 [details]
File: backtrace

Comment 2 Jerry James 2020-10-05 19:55:23 UTC
Created attachment 1719147 [details]
File: core_backtrace

Comment 3 Jerry James 2020-10-05 19:55:23 UTC
Created attachment 1719148 [details]
File: cpuinfo

Comment 4 Jerry James 2020-10-05 19:55:24 UTC
Created attachment 1719149 [details]
File: dso_list

Comment 5 Jerry James 2020-10-05 19:55:25 UTC
Created attachment 1719150 [details]
File: environ

Comment 6 Jerry James 2020-10-05 19:55:26 UTC
Created attachment 1719151 [details]
File: limits

Comment 7 Jerry James 2020-10-05 19:55:27 UTC
Created attachment 1719152 [details]
File: maps

Comment 8 Jerry James 2020-10-05 19:55:27 UTC
Created attachment 1719153 [details]
File: mountinfo

Comment 9 Jerry James 2020-10-05 19:55:28 UTC
Created attachment 1719154 [details]
File: open_fds

Comment 10 Jerry James 2020-10-05 19:55:29 UTC
Created attachment 1719155 [details]
File: proc_pid_status

Comment 11 Jerry James 2020-11-27 03:42:50 UTC
I just hit exactly the same crash trying to run abipkgdiff on old and new versions of the abc package.  This time I used the Fedora 33 version of the package:

libabigail-1.7-2.fc33.x86_64

GDB says:

abipkgdiff: abg-dwarf-reader.cc:14645: void abigail::dwarf_reader::finish_member_function_reading(Dwarf_Die*, const function_decl_sptr&, const class_or_union_sptr&, abigail::dwarf_reader::read_context&): Assertion `__abg_cond__' failed.

Thread 10 "abipkgdiff" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff6282640 (LWP 44654)]
__GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:49
49	  return ret;
(gdb) bt
#0  __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff79078a4 in __GI_abort () at abort.c:79
#2  0x00007ffff7907789 in __assert_fail_base (
    fmt=0x7ffff7a74680 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=0x7ffff7f07815 "__abg_cond__", 
    file=0x7ffff7f1ce37 "abg-dwarf-reader.cc", line=14645, 
    function=<optimized out>) at assert.c:92
#3  0x00007ffff7917026 in __GI___assert_fail (
    assertion=assertion@entry=0x7ffff7f07815 "__abg_cond__", 
    file=file@entry=0x7ffff7f1ce37 "abg-dwarf-reader.cc", 
    line=line@entry=14645, 
    function=function@entry=0x7ffff7f210b0 "void abigail::dwarf_reader::finish_member_function_reading(Dwarf_Die*, const function_decl_sptr&, const class_or_union_sptr&, abigail::dwarf_reader::read_context&)") at assert.c:101
#4  0x00007ffff7ea9959 in abigail::dwarf_reader::finish_member_function_reading
    (die=0x7ffff627ef80, 
    f=std::shared_ptr<abigail::ir::function_decl> (use count 3, weak count 0) = {...}, 
    klass=std::shared_ptr<abigail::ir::class_or_union> (use count 2, weak count 0) = {...}, ctxt=...) at abg-dwarf-reader.cc:14645
#5  0x00007ffff7eb994f in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627ef80, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:18082
#6  0x00007ffff7eb2703 in abigail::dwarf_reader::add_or_update_member_function
    (where_offset=9254126, called_from_public_decl=true, 
    class_type=std::shared_ptr<abigail::ir::class_or_union> (use count 9, weak count 6) = {...}, function_die=0x7ffff627ef80, ctxt=...)
    at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#7  abigail::dwarf_reader::add_or_update_class_type (ctxt=..., 
    die=0x7ffff627f640, scope=<optimized out>, is_struct=<optimized out>, 
    klass=..., called_from_public_decl=true, where_offset=9254126)
    at abg-dwarf-reader.cc:15285
#8  0x00007ffff7eb95f0 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627f640, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17846
#9  0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627f640, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#10 0x00007ffff7eb9848 in abigail::dwarf_reader::build_qualified_type (
    where_offset=9254126, called_from_public_decl=true, die=0x7ffff627f810, 
    ctxt=...) at abg-dwarf-reader.cc:15623
#11 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., 
    die=0x7ffff627f810, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17758
#12 0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627f810, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#13 0x00007ffff7eae4fe in abigail::dwarf_reader::build_reference_type (
    ctxt=..., die=0x7ffff627fd70, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at abg-dwarf-reader.cc:15876
#14 0x00007ffff7eb790a in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627fd70, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17736
#15 0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff627fd70, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#16 0x00007ffff7eb2e9c in abigail::dwarf_reader::add_or_update_class_type (
    ctxt=..., die=0x7ffff6280300, scope=<optimized out>, 
    is_struct=<optimized out>, klass=..., called_from_public_decl=true, 
    where_offset=9254126) at abg-dwarf-reader.cc:15245
#17 0x00007ffff7eb95f0 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff6280300, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17846
#18 0x00007ffff7eb2205 in abigail::dwarf_reader::add_or_update_class_type (
    ctxt=..., die=0x7ffff62808c0, scope=<optimized out>, 
    is_struct=<optimized out>, klass=..., called_from_public_decl=true, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#19 0x00007ffff7eb95f0 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff62808c0, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17846
#20 0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff62808c0, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#21 0x00007ffff7eaf5e2 in abigail::dwarf_reader::build_function_type (
    ctxt=..., die=0x7ffff6281040, 
    is_method=std::shared_ptr<abigail::ir::class_or_union> (empty) = {...}, 
    where_offset=9254126) at abg-dwarf-reader.cc:16010
#22 0x00007ffff7eb4f0a in abigail::dwarf_reader::build_function_decl (
    ctxt=..., die=0x7ffff6281040, where_offset=9254126, 
    fn=std::shared_ptr<abigail::ir::function_decl> (empty) = {...})
    at abg-dwarf-reader.cc:17035
#23 0x00007ffff7eb8ce6 in abigail::dwarf_reader::build_or_get_fn_decl_if_not_suppressed (result=..., where_offset=9254126, fn_die=0x7ffff6281040, 
    scope=<optimized out>, ctxt=...) at abg-dwarf-reader.cc:16739
#24 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., 
    die=0x7ffff6281040, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:18071
#25 0x00007ffff7eb8b21 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff6281370, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:18048
#26 0x00007ffff7eb8b21 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff62816e0, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:18048
#27 0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff62816e0, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#28 0x00007ffff7eb9416 in abigail::dwarf_reader::build_namespace_decl_and_add_to_ir (where_offset=9254126, die=0x7ffff62819d0, ctxt=...)
    at abg-dwarf-reader.cc:14416
#29 abigail::dwarf_reader::build_ir_node_from_die (ctxt=..., 
    die=0x7ffff62819d0, scope=<optimized out>, 
    called_from_public_decl=<optimized out>, where_offset=9254126, 
    is_required_decl_spec=false) at abg-dwarf-reader.cc:17941
#30 0x00007ffff7ebb701 in abigail::dwarf_reader::build_ir_node_from_die (
    ctxt=..., die=0x7ffff62819d0, called_from_public_decl=<optimized out>, 
    where_offset=9254126) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#31 0x00007ffff7ec44f7 in abigail::dwarf_reader::build_translation_unit_and_add_to_ir (address_size=<optimized out>, die=0x7ffff62819b0, ctxt=...)
    at abg-dwarf-reader.cc:10046
#32 abigail::dwarf_reader::read_debug_info_into_corpus (ctxt=...)
    at abg-dwarf-reader.cc:17317
#33 abigail::dwarf_reader::read_corpus_from_elf (ctxt=..., 
    status=@0x7ffff6281b98: abigail::dwarf_reader::STATUS_UNKNOWN)
    at abg-dwarf-reader.cc:18481
#34 0x0000555555563f85 in compare (detailed_error_status=<synthetic pointer>, 
    ctxt=<error reading variable: access outside bounds of object referenced via synthetic pointer>, 
    diff=<error reading variable: access outside bounds of object referenced via synthetic pointer>, 
    env=<error reading variable: access outside bounds of object referenced via synthetic pointer>, opts=..., 
    priv_types_supprs2=std::vector of length 1, capacity 1 = {...}, 
    debug_dir2=..., elf2=..., 
    priv_types_supprs1=std::vector of length 1, capacity 1 = {...}, 
    debug_dir1=..., elf1=...) at abipkgdiff.cc:1308
#35 compare_task::perform (this=0x55555559c2c0) at abipkgdiff.cc:1813
#36 0x00007ffff7ee1225 in abigail::workers::worker::wait_to_execute_a_task (
    p=0x55555559c020) at abg-workers.cc:413
#37 0x00007ffff78c83f9 in start_thread (arg=0x7ffff6282640)
    at pthread_create.c:463
#38 0x00007ffff79e2903 in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) frame 4
#4  0x00007ffff7ea9959 in abigail::dwarf_reader::finish_member_function_reading
    (die=0x7ffff627ef80, 
    f=std::shared_ptr<abigail::ir::function_decl> (use count 3, weak count 0) = {...}, 
    klass=std::shared_ptr<abigail::ir::class_or_union> (use count 2, weak count 0) = {...}, ctxt=...) at abg-dwarf-reader.cc:14645
14645	  ABG_ASSERT(m);
(gdb) print f
$1 = std::shared_ptr<abigail::ir::function_decl> (use count 3, weak count 0) = {get() = 0x7fffbc4179c0}
(gdb) print *f._M_ptr
$2 = {<abigail::ir::decl_base> = {<abigail::ir::type_or_decl_base> = {<abigail::ir::ir_traversable_base> = {<abigail::ir::traversable_base> = {
          _vptr.traversable_base = 0x7ffff7f8f110 <vtable for abigail::ir::function_decl+336>, visiting_ = false}, <No data fields>}, 
      priv_ = std::shared_ptr<abigail::ir::type_or_decl_base::priv> (use count 1, weak count 0) = {get() = 0x7fffbc417a10}}, 
    _vptr.decl_base = 0x7ffff7f8f080 <vtable for abigail::ir::function_decl+192>, priv_ = 0x7fffbc417b30}, 
  _vptr.function_decl = 0x7ffff7f8efe0 <vtable for abigail::ir::function_decl+32>, priv_ = 0x7fffbc417b90}
(gdb) print *$2->priv_
$3 = {declared_inline_ = false, 
  binding_ = abigail::ir::decl_base::BINDING_GLOBAL, 
  type_ = std::weak_ptr<abigail::ir::function_type> (use count 4, weak count 2) = {get() = 0x7fffbc4162e0}, naked_type_ = 0x7fffbc4162e0, 
  symbol_ = std::shared_ptr<abigail::ir::elf_symbol> (empty) = {get() = 0x0}, 
  id_ = {raw_ = 0x0}}
(gdb) print *$3->type_._M_ptr
$4 = {<abigail::ir::type_base> = {<abigail::ir::type_or_decl_base> = {<abigail::ir::ir_traversable_base> = {<abigail::ir::traversable_base> = {
          _vptr.traversable_base = 0x7ffff7f8d9e0 <vtable for abigail::ir::method_type+296>, visiting_ = false}, <No data fields>}, 
      priv_ = std::shared_ptr<abigail::ir::type_or_decl_base::priv> (use count 1, weak count 0) = {get() = 0x7fffbc416a30}}, 
    _vptr.type_base = 0x7ffff7f8d960 <vtable for abigail::ir::method_type+168>, priv_ = 0x7fffbc416a90}, 
  _vptr.function_type = 0x7ffff7f8d8d8 <vtable for abigail::ir::method_type+32>, 
  priv_ = std::shared_ptr<abigail::ir::function_type::priv> (use count 1, weak count 0) = {get() = 0x7fffbc416ad0}}
(gdb) print *$4->priv_
$5 = {parms_ = std::vector of length 2, capacity 2 = {
    std::shared_ptr<abigail::ir::function_decl::parameter> (use count 1, weak count 0) = {get() = 0x7fffbc416c00}, 
    std::shared_ptr<abigail::ir::function_decl::parameter> (use count 1, weak count 0) = {get() = 0x7fffbc4177b0}}, 
  return_type_ = std::weak_ptr<abigail::ir::type_base> (use count 3, weak count 4) = {get() = 0x7fffbc416d90}, cached_name_ = {raw_ = 0x7fffbc416bd0}, 
  internal_cached_name_ = {raw_ = 0x0}}
(gdb) print *$5->cached_name_.raw_
$10 = "vec<int>& (vec<int>::*) (vec<int>*, vec<int>&)"

I'm not sure what is relevant.  Let me know if you want me to provide further information.

Comment 12 Ben Cotton 2021-11-04 16:54:41 UTC
This message is a reminder that Fedora 33 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '33'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 33 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 13 Ben Cotton 2021-11-30 17:16:36 UTC
Fedora 33 changed to end-of-life (EOL) status on 2021-11-30. Fedora 33 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.