Project

General

Profile

Actions

Bug #7538

closed

librados: rados ls crashes on firefly due to segfault in ObjectIterator::operator=

Added by Josh Durgin about 10 years ago. Updated about 10 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
librados
Target version:
-
% Done:

0%

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

Description

as seen in: http://qa-proxy.ceph.com/teuthology/teuthology-2014-02-23_23:02:27-rbd-firefly-testing-basic-plana/99242/

2014-02-25T10:18:21.708 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: + rados -p rbd ls
2014-02-25T10:18:21.708 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: + grep ^rbd_header
2014-02-25T10:18:21.743 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: 2014-02-25 10:18:21.742040 7f75bdefa700  0 -- 10.214.131.11:0/1022681 >> 10.214.131.11:6805/5714 pipe(0x7f75b4005700 sd=9 :58774 s=2 pgs=648 cs=1 l=1 c=0x7f75b4005960).injecting socket failure
2014-02-25T10:18:21.757 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: *** Caught signal (Segmentation fault) **
2014-02-25T10:18:21.758 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  in thread 7f75c982b780
2014-02-25T10:18:21.774 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  ceph version 0.77-601-g27968a7 (27968a74d29998703207705194ec4e0c93a6b42d)
2014-02-25T10:18:21.774 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  1: rados() [0x43e41a]
2014-02-25T10:18:21.774 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  2: (()+0xfcb0) [0x7f75c84eecb0]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  3: (librados::ObjectIterator::operator=(librados::ObjectIterator const&)+0x29) [0x7f75c8882b99]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  4: (librados::ObjectIterator::ObjectIterator(librados::ObjectIterator const&)+0x2f) [0x7f75c8882f2f]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  5: rados() [0x41588c]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  6: (main()+0xbb5) [0x410e15]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  7: (__libc_start_main()+0xed) [0x7f75c792e76d]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  8: rados() [0x412419]
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: 2014-02-25 10:18:21.757538 7f75c982b780 -1 *** Caught signal (Segmentation fault) **
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  in thread 7f75c982b780
2014-02-25T10:18:21.775 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]: 
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  ceph version 0.77-601-g27968a7 (27968a74d29998703207705194ec4e0c93a6b42d)
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  1: rados() [0x43e41a]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  2: (()+0xfcb0) [0x7f75c84eecb0]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  3: (librados::ObjectIterator::operator=(librados::ObjectIterator const&)+0x29) [0x7f75c8882b99]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  4: (librados::ObjectIterator::ObjectIterator(librados::ObjectIterator const&)+0x2f) [0x7f75c8882f2f]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  5: rados() [0x41588c]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  6: (main()+0xbb5) [0x410e15]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  7: (__libc_start_main()+0xed) [0x7f75c792e76d]
2014-02-25T10:18:21.776 INFO:teuthology.task.workunit.client.0.err:[10.214.131.11]:  8: rados() [0x412419]

This is due to rados.cc using operator= on the end iterator. A test case for this should be added to the usual librados tests.

Actions #1

Updated by Josh Durgin about 10 years ago

  • Status changed from In Progress to Fix Under Review
Actions #2

Updated by Sage Weil about 10 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF