Project

General

Profile

Bug #21756

Updated by Kefu Chai over 6 years ago

steps to reproduce: 
 <pre> 
 ../src/vstart.sh -X -n --mon_num 1 --osd_num 4 --mds_num 0 
 ./bin/ceph osd erasure-code-profile set huangjun k=3 m=1 
 ./bin/ceph osd pool create rbd 1 1 erasure huangjun 
 ./bin/ceph osd pool set rbd allow_ec_overwrites true 
 # comment out "osd copyfrom max chunk = 524288" in ceph.conf 
 ./bin/init-ceph restart osd 
 dd if=/dev/zero of=/tmp/9461760 bs=1K count=947 
 truncate -s 9461760 /tmp/9461760 
 ./bin/rados -p rbd put object1 /tmp/9461760 
 ./bin/rados -p rbd cp object1 object2 
 </pre> 

 osd1 crashed with: 
 <pre> 
 /usr/src/ceph/src/osd/ECTransaction.h: 179: FAILED assert(plan.to_read.count(i.first) == 0 || (!plan.to_read.at(i.first).empty() && !i.second.has_source())) 

  ceph version 13.0.0-66-g2c0fe55 (2c0fe556fdf088f35bc7f7d98cfaced68fe50171) mimic (dev) 
  1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x110) [0x7f8ff2563ca0] 
  2: (ECBackend::start_rmw(ECBackend::Op*, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&)+0x121d) [0x7f8ff22e986d] 
  3: (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&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned 
  long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)+0x408) [0x7f8ff22ea7b8] 
  4: (PrimaryLogPG::issue_repop(PrimaryLogPG::RepGather*, PrimaryLogPG::OpContext*)+0x9f1) [0x7f8ff2150c21] 
  5: (PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)+0x13ea) [0x7f8ff219e74a] 
  6: (CopyFromCallback::finish(boost::tuples::tuple<int, PrimaryLogPG::CopyResults*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples:: 
 null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>)+0xb0) [0x7f8ff21e76d0] 
  7: (PrimaryLogPG::process_copy_chunk(hobject_t, unsigned long, int)+0x76c) [0x7f8ff218873c] 
  8: (C_Copyfrom::finish(int)+0xb1) [0x7f8ff21e7401] 
  9: (Context::complete(int)+0x9) [0x7f8ff202cd29] 
  10: (Finisher::finisher_thread_entry()+0x198) [0x7f8ff25615f8] 
  11: (()+0x7dc5) [0x7f8fef144dc5] 
  12: (clone()+0x6d) [0x7f8fee23873d] 
 </pre> 
 

Back