Bug 1334534 - collection split causes orphaned files in filestore causing inconsistent scrubs and crashes on pg removal
Summary: collection split causes orphaned files in filestore causing inconsistent scru...
Alias: None
Product: Red Hat Ceph Storage
Classification: Red Hat
Component: RADOS
Version: 1.3.2
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: 1.3.3
Assignee: Samuel Just
QA Contact: shylesh
Bara Ancincova
Depends On: 1318055
Blocks: 1372735
TreeView+ depends on / blocked
Reported: 2016-05-09 23:20 UTC by Ken Dreyer (Red Hat)
Modified: 2017-07-30 15:07 UTC (History)
11 users (show)

Fixed In Version: RHEL: ceph-0.94.7-5.el7cp Ubuntu: ceph_0.94.7-3redhat1trusty
Doc Type: Bug Fix
Doc Text:
.PG collection split no longer produces any orphaned files Due to a bug in the underlying source code, a placement group (PG) collection split could produce orphaned files. Consequently, the PG could be incorrectly marked as inconsistent during scrubbing, or the OSD nodes could terminate unexpectedly. The bug has been fixed, and PG collection split no longer produces any orphaned files.
Clone Of: 1318055
Last Closed: 2016-09-29 12:58:28 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Ceph Project Bug Tracker 14766 None None None 2016-05-09 23:20:14 UTC
Red Hat Product Errata RHSA-2016:1972 normal SHIPPED_LIVE Moderate: Red Hat Ceph Storage 1.3.3 security, bug fix, and enhancement update 2016-09-29 16:51:21 UTC

Description Ken Dreyer (Red Hat) 2016-05-09 23:20:15 UTC
This clone is to fix this BZ in Hammer / RHCS 1.3.

+++ This bug was initially created as a clone of Bug #1318055 +++

Description of problem:

When a collection split occurs during a collection_move_rename on an ec object, it can result in the old link being orphaned in the parent directory (see the commits for details).  

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Create new cluster
2. Create ec pool with one pg.
3. Fill up pool by alternately creating a new object and overwriting an existing object.  All of the objects should have names longer than 300 characters.
4. When the pg collection splits, there should be an orphaned file in the <pgid>_head/ directory for the single pg on the osds with the pg.

Actual results:

4. is proof that the bug happened.  The following symptoms may also occur depending on the exact objects created:

Scrubbing the pg may result in the pg being reported incorrectly as inconsistent.  Removing the orphaned file and re-scrubbing should cause the pg to stop being inconsistent.

Causing the pg mapping to change may cause the ENOTEMPTY crash in the linked bug.  Again, the file remaining in the collection directory will be the orphaned file.

Expected results:

No orphaned file, crashes, or pg inconsistencies.

--- Additional comment from Samuel Just on 2016-03-15 17:52:51 EDT ---

https://github.com/ceph/ceph/pull/8136 -- merged.  Not backported to hammer yet.

--- Additional comment from Samuel Just on 2016-04-08 10:41:56 EDT ---

Still needs backport to hammer.

Comment 1 Samuel Just 2016-06-03 22:34:19 UTC
Penidng https://github.com/ceph/ceph/pull/9277

Comment 2 Ken Dreyer (Red Hat) 2016-06-16 15:12:19 UTC
Change was merged to hammer upstream and will be in v0.94.8.

Comment 4 Ken Dreyer (Red Hat) 2016-08-17 14:14:14 UTC
Sam is there a Teuthology test for this? (how would I find that information myself? Would I see some reference to the upstream Redmine ticket in ceph-qa-suite.git?)

Comment 5 Federico Lucifredi 2016-08-17 22:39:43 UTC
medium priority for 1.3.3. testing.

Comment 10 shylesh 2016-09-13 12:24:49 UTC
Followed the bug description and didn't find any orphan objects or crashed.
Hence marking this as verified.
Verified on 0.94.9-1.el7cp.x86_64

Comment 13 errata-xmlrpc 2016-09-29 12:58:28 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.


Note You need to log in before you can comment on or make changes to this bug.