Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
This project is now read‑only. Starting Monday, February 2, please use https://ibm-ceph.atlassian.net/ for all bug tracking management.

Bug 1368402

Summary: backport tracker : 15647 : osd: rados cppool omap to ec pool crashes osd
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Vikhyat Umrao <vumrao>
Component: RADOSAssignee: Samuel Just <sjust>
Status: CLOSED ERRATA QA Contact: Vasishta <vashastr>
Severity: high Docs Contact: Bara Ancincova <bancinco>
Priority: high    
Version: 1.3.2CC: ceph-eng-bugs, dzafman, flucifre, hnallurv, kchai, kdreyer, sjust, vashastr
Target Milestone: rc   
Target Release: 1.3.3   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: RHEL: ceph-0.94.8-1.el7cp Ubuntu: ceph_0.94.8-2redhat1trusty Doc Type: Bug Fix
Doc Text:
.OSDs no longer crash when using "rados cppool" to copy an "omap" object The `omap` objects cannot be stored in an erasure-coded pool. Previously, copying the `omap` objects from a replicated pool to an erasure-coded pool by using the `rados cppool` command caused the OSD nodes to terminate unexpectedly. With this update, the OSD nodes return an error message instead of crashing in the described situation.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-29 13:00:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1372735    

Description Vikhyat Umrao 2016-08-19 09:54:22 UTC
Description of problem:
backport tracker : 15647 : osd: rados cppool omap to ec pool crashes osd

Version-Release number of selected component (if applicable):
 ceph version  0.94.5-12.el7cp


osd/ReplicatedPG.cc: 6437: FAILED assert(cop->omap_header.length() == 0)

 ceph version 0.94.5-12.el7cp (b08a982b961058eae6ee7c6a0efd2666d0bb4b1a)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x85) [0xb08f35]
 2: (ReplicatedPG::_write_copy_chunk(boost::shared_ptr<ReplicatedPG::CopyOp>, PGBackend::PGTransaction*)+0x977) [0x8025b7]
 3: (ReplicatedPG::_build_finish_copy_transaction(boost::shared_ptr<ReplicatedPG::CopyOp>, PGBackend::PGTransaction*)+0xef) [0x80271f]
 4: (ReplicatedPG::process_copy_chunk(hobject_t, unsigned long, int)+0x44c) [0x83f54c]
 5: (C_Copyfrom::finish(int)+0xb1) [0x88e131]
 6: (Context::complete(int)+0x9) [0x683589]
 7: (Finisher::finisher_thread_entry()+0x168) [0xa2bda8]
 8: (()+0x7dc5) [0x7f4e844e6dc5]
 9: (clone()+0x6d) [0x7f4e82fc6ced]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

Comment 2 Ken Dreyer (Red Hat) 2016-08-22 14:02:58 UTC
Are there any automated tests that check this issue (eg. in Teuthology)?

Comment 3 Vikhyat Umrao 2016-08-22 14:12:24 UTC
(In reply to Ken Dreyer (Red Hat) from comment #2)
> Are there any automated tests that check this issue (eg. in Teuthology)?

I am not sure about automated tests. May be Kefu will have more idea on this.

But it is very easy to test. I have tested with rados cppool.

- If we do cppool from a replicated pool to erasure pool.
OSDs were crashing with assert given in comment#0.

- After fix if we do cppool from a replicated pool to erasure pool. OSDs should not crash with assert given in comment#0.

Comment 4 Vikhyat Umrao 2016-08-22 14:15:36 UTC
Harish, Can we get qa_ack+ for this bug as test steps are already given.

Thanks for your help.

Comment 11 errata-xmlrpc 2016-09-29 13:00:35 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-1972.html