Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be unavailable on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
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: NEW
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: 2020-11-27 03:42 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---


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@1000.service/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.


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