Project

General

Profile

Bug #52220

crash: void ECUtil::HashInfo::append(uint64_t, std::map<int, ceph::buffer::v15_2_0::list>&): assert(to_append.size() == cumulative_shard_hashes.size())

Added by Telemetry Bot 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Telemetry
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):

2ec29086a78b2f808a2deab57bda50e9026738cceaff93c61907bcbb837121ca
32515767a9720aea5861e19362836013bd901e52159cd81a4744553a1259acaf
7cd2fcb3bf8fc62b763d123bcb6807f795e04ddc8562dec495ce1d6f0494b9fd
f873c00ab614ac2e4cb2cfa78469901da2b05228cf79fb5d7f862ee16b347f7c

Crash signature (v2):

9541d850892a4b0e1e7d3cce6e339c998bae2a379c1c17339ba7c270946097e7


Description

http://telemetry.front.sepia.ceph.com:4000/d/jByk5HaMz/crash-spec-x-ray?orgId=1&var-sig_v2=9541d850892a4b0e1e7d3cce6e339c998bae2a379c1c17339ba7c270946097e7

Assert condition: to_append.size() == cumulative_shard_hashes.size()
Assert function: void ECUtil::HashInfo::append(uint64_t, std::map<int, ceph::buffer::v15_2_0::list>&)

Sanitized backtrace:

    ECUtil::HashInfo::append(unsigned long, std::map<int, ceph::buffer::v15_2_0::list, std::less<int>, std::allocator<std::pair<int const, ceph::buffer::v15_2_0::list> > >&)
    encode_and_write(pg_t, hobject_t const&, ECUtil::stripe_info_t const&, std::shared_ptr<ceph::ErasureCodeInterface>&, std::set<int, std::less<int>, std::allocator<int> > const&, unsigned long, ceph::buffer::v15_2_0::list, unsigned int, std::shared_ptr<ECUtil::HashInfo>, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>&, std::map<shard_id_t, ceph::os::Transaction, std::less<shard_id_t>, std::allocator<std::pair<shard_id_t const, ceph::os::Transaction> > >*, DoutPrefixProvider*)
    ECTransaction::generate_transactions(ECTransaction::WritePlan&, std::shared_ptr<ceph::ErasureCodeInterface>&, pg_t, ECUtil::stripe_info_t const&, std::map<hobject_t, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge> > > > const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> >&, std::map<hobject_t, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge> > > >*, std::map<shard_id_t, ceph::os::Transaction, std::less<shard_id_t>, std::allocator<std::pair<shard_id_t const, ceph::os::Transaction> > >*, std::set<hobject_t, std::less<hobject_t>, std::allocator<hobject_t> >*, std::set<hobject_t, std::less<hobject_t>, std::allocator<hobject_t> >*, DoutPrefixProvider*, ceph_release_t)
    ECBackend::try_reads_to_commit()
    ECBackend::check_ops()
    ECBackend::start_rmw(ECBackend::Op*, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&)
    ECBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, std::optional<pg_hit_set_history_t>&, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
    PrimaryLogPG::issue_repop(PrimaryLogPG::RepGather*, PrimaryLogPG::OpContext*)
    PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)
    PrimaryLogPG::do_op(boost::intrusive_ptr<OpRequest>&)
    PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)
    OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)
    ceph::osd::scheduler::PGOpItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)
    OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)
    ShardedThreadPool::shardedthreadpool_worker(unsigned int)
    ShardedThreadPool::WorkThreadSharded::entry()
    clone()

Crash dump sample:
{
    "assert_condition": "to_append.size() == cumulative_shard_hashes.size()",
    "assert_file": "osd/ECUtil.cc",
    "assert_func": "void ECUtil::HashInfo::append(uint64_t, std::map<int, ceph::buffer::v15_2_0::list>&)",
    "assert_line": 166,
    "assert_msg": "osd/ECUtil.cc: In function 'void ECUtil::HashInfo::append(uint64_t, std::map<int, ceph::buffer::v15_2_0::list>&)' thread 7f1789387700 time 2021-07-02T00:59:05.115251+0000\nosd/ECUtil.cc: 166: FAILED ceph_assert(to_append.size() == cumulative_shard_hashes.size())",
    "assert_thread_name": "tp_osd_tp",
    "backtrace": [
        "(()+0x12b20) [0x7f17a941fb20]",
        "(gsignal()+0x10f) [0x7f17a80877ff]",
        "(abort()+0x127) [0x7f17a8071c35]",
        "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1a9) [0x5604a8b5cc29]",
        "(()+0x507df2) [0x5604a8b5cdf2]",
        "(ECUtil::HashInfo::append(unsigned long, std::map<int, ceph::buffer::v15_2_0::list, std::less<int>, std::allocator<std::pair<int const, ceph::buffer::v15_2_0::list> > >&)+0x171) [0x5604a8e91e21]",
        "(encode_and_write(pg_t, hobject_t const&, ECUtil::stripe_info_t const&, std::shared_ptr<ceph::ErasureCodeInterface>&, std::set<int, std::less<int>, std::allocator<int> > const&, unsigned long, ceph::buffer::v15_2_0::list, unsigned int, std::shared_ptr<ECUtil::HashInfo>, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>&, std::map<shard_id_t, ceph::os::Transaction, std::less<shard_id_t>, std::allocator<std::pair<shard_id_t const, ceph::os::Transaction> > >*, DoutPrefixProvider*)+0x6d2) [0x5604a8fce9e2]",
        "(()+0x97f6b0) [0x5604a8fd46b0]",
        "(ECTransaction::generate_transactions(ECTransaction::WritePlan&, std::shared_ptr<ceph::ErasureCodeInterface>&, pg_t, ECUtil::stripe_info_t const&, std::map<hobject_t, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge> > > > const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> >&, std::map<hobject_t, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge>, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, interval_map<unsigned long, ceph::buffer::v15_2_0::list, bl_split_merge> > > >*, std::map<shard_id_t, ceph::os::Transaction, std::less<shard_id_t>, std::allocator<std::pair<shard_id_t const, ceph::os::Transaction> > >*, std::set<hobject_t, std::less<hobject_t>, std::allocator<hobject_t> >*, std::set<hobject_t, std::less<hobject_t>, std::allocator<hobject_t> >*, DoutPrefixProvider*, ceph_release_t)+0x7ca) [0x5604a8fd5e8a]",
        "(ECBackend::try_reads_to_commit()+0x46b) [0x5604a8fadd3b]",
        "(ECBackend::check_ops()+0x24) [0x5604a8fb0d14]",
        "(ECBackend::start_rmw(ECBackend::Op*, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&)+0x9a6) [0x5604a8fb1d46]",
        "(ECBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, std::optional<pg_hit_set_history_t>&, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)+0x405) [0x5604a8fb3765]",
        "(PrimaryLogPG::issue_repop(PrimaryLogPG::RepGather*, PrimaryLogPG::OpContext*)+0xda0) [0x5604a8d4fe80]",
        "(PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)+0x115d) [0x5604a8da816d]",
        "(PrimaryLogPG::do_op(boost::intrusive_ptr<OpRequest>&)+0x3758) [0x5604a8dac3f8]",
        "(PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)+0xd40) [0x5604a8db9800]",
        "(OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)+0x309) [0x5604a8c40319]",
        "(ceph::osd::scheduler::PGOpItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x68) [0x5604a8e9c318]",
        "(OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x12ef) [0x5604a8c5d92f]",
        "(ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x5c4) [0x5604a929df84]",
        "(ShardedThreadPool::WorkThreadSharded::entry()+0x14) [0x5604a92a0be4]",
        "(()+0x814a) [0x7f17a941514a]",
        "(clone()+0x43) [0x7f17a814cf23]" 
    ],
    "ceph_version": "15.2.13",
    "crash_id": "2021-07-02T00:59:05.129638Z_a2e2efab-948e-4521-9486-ce90a3b36f0d",
    "entity_name": "osd.9fbc927ad8197db29aa52041c56a1fab25ae038e",
    "os_id": "centos",
    "os_name": "CentOS Linux",
    "os_version": "8",
    "os_version_id": "8",
    "process_name": "ceph-osd",
    "stack_sig": "32515767a9720aea5861e19362836013bd901e52159cd81a4744553a1259acaf",
    "timestamp": "2021-07-02T00:59:05.129638Z",
    "utsname_machine": "x86_64",
    "utsname_release": "5.4.0-77-generic",
    "utsname_sysname": "Linux",
    "utsname_version": "#86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021" 
}

History

#1 Updated by Telemetry Bot 5 months ago

  • Crash signature (v1) updated (diff)
  • Crash signature (v2) updated (diff)
  • Affected Versions v15.2.12, v15.2.13 added

#2 Updated by Neha Ojha 5 months ago

  • Priority changed from Normal to Low
  • Crash signature (v1) updated (diff)

One cluster reporting all the crashes.

Also available in: Atom PDF