Project

General

Profile

Actions

Bug #5139

closed

Seg fault if listsnaps request with missing clones

Added by David Zafman almost 11 years ago. Updated almost 11 years ago.

Status:
Resolved
Priority:
High
Assignee:
David Zafman
Category:
OSD
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

After doing this to cloned object called obj2:

$ find dev name obj2_* -ls
660758 8 -rw-r--r-
1 dzafman dzafman 13 May 21 16:33 dev/osd3/current/3.0_head/obj2__head_3F1EE208__3
667244 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd3/current/3.0_head/obj2__64_3F1EE208__3
660683 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd0/current/3.0_head/obj2__head_3F1EE208__3
667235 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd0/current/3.0_head/obj2__64_3F1EE208__3
660703 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd4/current/3.0_head/obj2__head_3F1EE208__3
667240 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd4/current/3.0_head/obj2__64_3F1EE208__3
$ rm dev/osd3/current/3.0_head/obj2__64_3F1EE208__3 dev/osd0/current/3.0_head/obj2__64_3F1EE208__3 dev/osd4/current/3.0_head/obj2__64_3F1EE208__3
d$ find dev name obj2_* -ls
660758 8 -rw-r--r-
1 dzafman dzafman 13 May 21 16:33 dev/osd3/current/3.0_head/obj2__head_3F1EE208__3
660683 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd0/current/3.0_head/obj2__head_3F1EE208__3
660703 8 rw-r--r- 1 dzafman dzafman 13 May 21 16:33 dev/osd4/current/3.0_head/obj2__head_3F1EE208__3
$ rados -p testpool listsnaps obj2

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe682e700 (LWP 59632)]
0x0000000000e9fe88 in std::vector<snapid_t, std::allocator<snapid_t> >::size (this=0xd8) at /usr/include/c++/4.6/bits/stl_vector.h:571
571 { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
(gdb) bt
#0 0x0000000000e9fe88 in std::vector<snapid_t, std::allocator<snapid_t> >::size (this=0xd8) at /usr/include/c++/4.6/bits/stl_vector.h:571
#1 0x0000000000e687f7 in ReplicatedPG::find_object_context (this=0x20e3000, oid=..., oloc=..., pobc=0x7fffe682d040, can_create=false, psnapid=0x7fffe682cd70) at osd/ReplicatedPG.cc:4478
#2 0x0000000000e436e6 in ReplicatedPG::do_op (this=0x20e3000, op=std::tr1::shared_ptr (count 4, weak 0) 0x22c6000) at osd/ReplicatedPG.cc:865
#3 0x000000000101c94a in PG::do_request (this=0x20e3000, op=std::tr1::shared_ptr (count 4, weak 0) 0x22c6000) at osd/PG.cc:1814
#4 0x0000000000f412d7 in OSD::dequeue_op (this=0x20c9000, pg=..., op=std::tr1::shared_ptr (count 4, weak 0) 0x22c6000) at osd/OSD.cc:6411
#5 0x0000000000f40f2e in OSD::OpWQ::_process (this=0x20c9dc0, pg=...) at osd/OSD.cc:6385
#6 0x0000000000fab556 in ThreadPool::WorkQueueVal<std::pair<boost::intrusive_ptr<PG>, std::tr1::shared_ptr<OpRequest> >, boost::intrusive_ptr<PG> >::_process (this=0x20c9dc0, u=...) at ./common/WorkQueue.h:168
#7 0x0000000000fab370 in ThreadPool::WorkQueueVal<std::pair<boost::intrusive_ptr<PG>, std::tr1::shared_ptr<OpRequest> >, boost::intrusive_ptr<PG> >::_void_process (this=0x20c9dc0, handle=...) at ./common/WorkQueue.h:189
#8 0x0000000001211e0d in ThreadPool::worker (this=0x20c9458, wt=0x2157e40) at common/WorkQueue.cc:119
#9 0x0000000001213a9d in ThreadPool::WorkThread::entry (this=0x2157e40) at common/WorkQueue.h:316
#10 0x000000000120aef9 in Thread::_entry_func (arg=0x2157e40) at common/Thread.cc:41
#11 0x00007ffff79c2e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007ffff5b584bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

Actions

Also available in: Atom PDF