Project

General

Profile

Bug #17983

osd: setattr on old object name in ec transaction

Added by Sage Weil about 6 years ago. Updated about 6 years ago.

Status:
Resolved
Priority:
Immediate
Assignee:
Category:
-
Target version:
-
% Done:

0%

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

Description

ceph_test_rados_api_tier --gtest_filter=LibRadosTwoPoolsECPP.PromoteSnap

on bluestore we crash. the txn is

    "ops": [
        {
            "op_num": 0,
            "op_name": "clone",
            "collection": "1.0s1_head",
            "src_oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:head#",
            "dst_oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:2#" 
        },
        {
            "op_num": 1,
            "op_name": "rmattr",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:2#",
            "name": "snapset" 
        },
        {
            "op_num": 2,
            "op_name": "setattrs",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:2#",
            "attr_lens": {
                "_": 297
            }
        },
        {
            "op_num": 3,
            "op_name": "setattr",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:2#",
            "name": "hinfo_key",
            "length": 30
        },
        {
            "op_num": 4,
            "op_name": "op_coll_move_rename",
            "old_collection": "1.0s1_head",
            "old_oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:head#",
            "new_collection": "1.0s1_head",
            "new_oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:head#4" 
        },
        {
            "op_num": 5,
            "op_name": "setattr",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:head#",
            "name": "hinfo_key",
            "length": 30
        },
        {
            "op_num": 6,
            "op_name": "touch",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:snapdir#" 
        },
        {
            "op_num": 7,
            "op_name": "setattrs",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:snapdir#",
            "attr_lens": {
                "_": 289,
                "snapset": 75
            }
        },
        {
            "op_num": 8,
            "op_name": "setattr",
            "collection": "1.0s1_head",
            "oid": "1#1:0a29011d:test-rados-api-gnit-30198-3::baz:snapdir#",
            "name": "hinfo_key",
            "length": 30
        }
    ]

note that op 5 does setattr on the old oid that op 4 just renamed.

History

#1 Updated by Sage Weil about 6 years ago

https://github.com/ceph/ceph/pull/12114 will make this easier to debug; we should update FileStore to stop tolerating ENOENT for the same set of ops once we confirm that there aren't other parts of the OSD submitting bad txns like this. Otherwise we'll need to restructure bluestore's code a bit to handle them gracefully.

#2 Updated by Samuel Just about 6 years ago

Ah, that's actually somewhat harmless, let's see why it's doing that...

#3 Updated by Samuel Just about 6 years ago

  • Status changed from New to 7

#4 Updated by Samuel Just about 6 years ago

  • Status changed from 7 to Fix Under Review

#6 Updated by Sage Weil about 6 years ago

  • Status changed from Fix Under Review to Resolved

Also available in: Atom PDF