Project

General

Profile

Actions

Bug #52400

closed

[pwl ssd] memory corruption (shared_ptr related?)

Added by jianpeng ma over 2 years ago. Updated about 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
pacific
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

In xfstests w/ librbd/pwl/ssd, we met some crash.
#0 0x00007fd2457747b1 in std::__atomic_base<unsigned int>::fetch_add (_m=std::memory_order_seq_cst, __i=1, this=0x51)
at /usr/include/c++/9/bits/atomic_base.h:539
#1 std::
_atomic_base<unsigned int>::operator++ (this=0x51) at /usr/include/c++/9/bits/atomic_base.h:303
#2 ceph::buffer::v15_2_0::ptr::ptr (this=this@entry=0x7fd2142b7448, p=...) at ../src/common/buffer.cc:386
#3 0x00007fd245776630 in ceph::buffer::v15_2_0::ptr_node::ptr_node (this=0x7fd2142b7440) at ../src/include/buffer.h:397
#4 ceph::buffer::v15_2_0::ptr_node::cloner::operator() (this=<optimized out>, clone_this=...) at ../src/common/buffer.cc:2240
#5 0x00007fd23c18f023 in _gnu_cxx::_atomic_add_single (_val=1, __mem=0x7fcf) at /usr/include/c++/9/ext/atomicity.h:98
#6 __gnu_cxx::
_atomic_add_dispatch (_val=1, __mem=0x7fcf) at /usr/include/c++/9/ext/atomicity.h:98
#7 std::_Sp_counted_base<(
_gnu_cxx::_Lock_policy)2>::_M_add_ref_copy (this=0x51) at /usr/include/c++/9/bits/shared_ptr_base.h:139
#8 std::__shared_count<(_gnu_cxx::_Lock_policy)2>::_shared_count (_r=..., this=0x7fd233ffd0e8)
at /usr/include/c++/9/bits/shared_ptr_base.h:737
#9 std::
_shared_ptr<librbd::cache::pwl::ssd::WriteLogEntry, (_gnu_cxx::_Lock_policy)2>::_shared_ptr<librbd::cache::pwl::GenericWriteLogEntry> (_p=0x7fcfc40333a0, __r=..., this=0x7fd233ffd0e0) at /usr/include/c++/9/bits/shared_ptr_base.h:1164
#10 std::shared_ptr<librbd::cache::pwl::ssd::WriteLogEntry>::shared_ptr<librbd::cache::pwl::GenericWriteLogEntry> (
__p=0x7fcfc40333a0, __r=std::shared_ptr<librbd::cache::pwl::GenericWriteLogEntry> (empty) = {...}, this=0x7fd233ffd0e0)
at /usr/include/c++/9/bits/shared_ptr.h:235
#11 std::static_pointer_cast<librbd::cache::pwl::ssd::WriteLogEntry, librbd::cache::pwl::GenericWriteLogEntry> (
__r=std::shared_ptr<librbd::cache::pwl::GenericWriteLogEntry> (empty) = {...}) at /usr/include/c++/9/bits/shared_ptr.h:494
#12 librbd::cache::pwl::ssd::WriteLog<librbd::ImageCtx>::collect_read_extents (this=0x7fd2200153e0, read_buffer_offset=12288,
map_entry=..., log_entries_to_read=std::vector of length 0, capacity 0, bls_to_read=std::vector of length 0, capacity 0,
entry_hit_length=<optimized out>, hit_extent={...}, read_ctx=0x7fd21423ab80) at ../src/librbd/cache/pwl/ssd/WriteLog.cc:80
#13 0x00007fd23c14f9a2 in librbd::cache::pwl::AbstractWriteLog<librbd::ImageCtx>::read (this=<optimized out>, image_extents=...,
bl=<optimized out>, fadvise_flags=fadvise_flags@entry=0, on_finish=<optimized out>) at /usr/include/c++/9/ext/atomicity.h:96
#14 0x00007fd23c135daa in librbd::cache::WriteLogImageDispatch<librbd::ImageCtx>::read (this=0x7fd224033000,
aio_comp=0x55c098c26a50, image_extents=..., read_result=...,
io_context=std::shared_ptr<neorados::IOContext> (use count 8, weak count 0) = {...}, op_flags=0, read_flags=0,
parent_trace=..., tid=4572348, image_dispatch_flags=0x55c0982a874c, dispatch_result=0x55c0982a8750, on_finish=0x55c098c26ba8,
on_dispatched=0x55c0982a8730) at /usr/include/c++/9/optional:963
#15 0x00007fd245bef334 in librbd::io::ImageDispatcher<librbd::ImageCtx>::SendVisitor::operator() (read=..., this=0x7fd233ffd480)
at /usr/include/c++/9/ext/atomicity.h:96
#16 boost::detail::variant::invoke_visitor<librbd::io::ImageDispatcher<librbd::ImageCtx>::SendVisitor const, false>::internal_visit<librbd::io::ImageDispatchSpec::Read&> (operand=..., this=<synthetic pointer>) at boost/include/boost/variant/variant.hpp:1028
#17 boost::detail::variant::visitation_impl_invoke_impl<boost::detail::variant::invoke_visitor<librbd::io::ImageDispatcher<librbd::ImageCtx>::SendVisitor const, false>, void*, librbd::io::ImageDispatchSpec::Read> (storage=<optimized out>,
visitor=<synthetic pointer>...) at boost/include/boost/variant/detail/visitation_impl.hpp:119
#18 boost::detail::variant::visitation_impl_invoke<boost::detail::variant::invoke_visitor<librbd::io::ImageDispatcher<librbd::ImageCtx>::SendVisitor const, false>, void*, librbd::io::ImageDispatchSpec::Read, boost::variant<librbd::io::ImageDispatchSpec::Read, librbd::io::ImageDispatchSpec::Discard, librbd::io::ImageDispatchSpec::Write, librbd::io::ImageDispatchSpec::WriteSame, librbd::io::ImageDispatchSpec::CompareAndWrite, librbd::io::ImageDispatchSpec::Flush, librbd::io::ImageDispatchSpec::ListSnaps>::has_fallback_type
> (
t=0x0, storage=<optimized out>, visitor=<synthetic pointer>..., internal_which=<optimized out>)


Related issues 1 (0 open1 closed)

Copied to rbd - Backport #52570: pacific: [pwl ssd] memory corruption (shared_ptr related?)ResolvedDeepika UpadhyayActions
Actions

Also available in: Atom PDF