Project

General

Profile

Bug #7423

Updated by Loïc Dachary about 10 years ago

While playing with "ECBackend pull request":https://github.com/ceph/ceph/pull/1228 
 <pre> 
  ceph version 0.76-491-gdd5ed4e (dd5ed4e444cea6ebdd8a11e4f2ebacf324228412) 
  1: (ceph::BackTrace::BackTrace(int)+0x2d) [0x1462859] 
  2: ./ceph-osd() [0x17048b8] 
  3: (()+0xfbb0) [0x7fa1e1259bb0] 
  4: (gsignal()+0x37) [0x7fa1df931f77] 
  5: (abort()+0x148) [0x7fa1df9355e8] 
  6: (__gnu_cxx::__verbose_terminate_handler()+0x155) [0x7fa1e023d6e5] 
  7: (()+0x5e856) [0x7fa1e023b856] 
  8: (()+0x5e883) [0x7fa1e023b883] 
  9: (()+0x5eaae) [0x7fa1e023baae] 
  10: (ceph::buffer::list::substr_of(ceph::buffer::list const&, unsigned int, unsigned int)+0x6d) [0x1850f55] 
  11: (CallClientContexts::finish(std::pair<RecoveryMessages*, ECBackend::read_result_t&>&)+0x3a8) [0x16d0ce8] 
  12: (GenContext<std::pair<RecoveryMessages*, ECBackend::read_result_t&>&>::complete(std::pair<RecoveryMessages*, ECBackend::read_result_t&>&)+0x2a) [0x16d52fc] 
  13: (ECBackend::complete_read_op(ECBackend::ReadOp&, RecoveryMessages*)+0xec) [0x16c74ec] 
  14: (ECBackend::handle_sub_read_reply(pg_shard_t, ECSubReadReply&, RecoveryMessages*)+0xc85) [0x16c7363] 
  15: (ECBackend::handle_message(std::tr1::shared_ptr<OpRequest>)+0x438) [0x16c4fc4] 
  16: (ReplicatedPG::do_request(std::tr1::shared_ptr<OpRequest>, ThreadPool::TPHandle&)+0x4c0) [0x159de44] 
  17: (OSD::dequeue_op(boost::intrusive_ptr<PG>, std::tr1::shared_ptr<OpRequest>, ThreadPool::TPHandle&)+0x36e) [0x128debe] 
  18: (OSD::OpWQ::_process(boost::intrusive_ptr<PG>, ThreadPool::TPHandle&)+0x23f) [0x128da55] 
  19: (ThreadPool::WorkQueueVal<std::pair<boost::intrusive_ptr<PG>, std::tr1::shared_ptr<OpRequest> >, boost::intrusive_ptr<PG> >::_void_process(void*, ThreadPool::TPHandle&)+0xd4) [0x133058e] 
  20: (ThreadPool::worker(ThreadPool::WorkThread*)+0x734) [0x183e440] 
  21: (ThreadPool::WorkThread::entry()+0x23) [0x18402b7] 
  22: (Thread::_entry_func(void*)+0x23) [0x1836b87] 
  23: (()+0x7f6e) [0x7fa1e1251f6e] 
  24: (clone()+0x6d) [0x7fa1df9f59cd] 
  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this. 
 </pre> 
 Steps to reproduce after compiling: 
 <pre> 
 rm -fr dev out ;    mkdir -p dev ; LC_ALL=C MON=1 OSD=10 bash -x ./vstart.sh -d -n -X -l mon osd 
 ./ceph osd crush rule create-erasure ecruleset erasure-code-k=2 erasure-code-m=1 erasure-code-ruleset-failure-domain=osd 
 ./ceph osd pool create ecpool 12 12 erasure crush_ruleset=ecruleset erasure-code-k=2 erasure-code-m=1 erasure-code-ruleset-failure-domain=osd 
 ./rados --pool ecpool put SOMETHING /etc/group 
 ./rados --pool ecpool get SOMETHING /tmp/SOMETHING 
 </pre> 


Back