Project

General

Profile

Actions

Bug #38199

open

rgw: setacl on versioned object doesn't write correct bi log entries

Added by Yehuda Sadeh about 5 years ago. Updated almost 5 years ago.

Status:
Triaged
Priority:
Normal
Assignee:
-
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

It doesn't set the versioned field correctly. Then sync assumes versioned_epoch=0.

Actions #1

Updated by Casey Bodley about 5 years ago

  • Priority changed from Normal to High
Actions #2

Updated by Casey Bodley about 5 years ago

  • Status changed from New to Triaged
Actions #3

Updated by Casey Bodley almost 5 years ago

  • Assignee set to Casey Bodley
Actions #4

Updated by Casey Bodley almost 5 years ago

  • Assignee deleted (Casey Bodley)
  • Priority changed from High to Normal

It's true that the "versioned" field of the bilog entry from setacl is false:

    {
        "op_id": "00000000037.30.5",
        "op_tag": "_bXw-TNSXIu-Y8Ghwd7_lsfsV0SYMFKj",
        "op": "write",
        "object": "128m.iso",
        "instance": "9kazjXXpT2ajS2J4s6KJSdLNEWxWIsZ",
        "state": "complete",
        "index_ver": 37,
        "timestamp": "2019-06-04T18:45:08.202174613Z",
        "ver": {
            "pool": 7,
            "epoch": 11
        },
        "bilog_flags": 0,
        "versioned": false,
        "owner": "",
        "owner_display_name": "",
        "zones_trace": [
            "52b281b8-891c-4849-b88a-ba2b818f8e8a" 
        ]
    }

This happens because RGWRados::set_attrs() is preparing/completing its own RGWRados::Bucket::UpdateIndex op, rather than calling through RGWRados::Object::Write::_do_write_meta() which correctly set the versioned field.

The versioned_epoch field is independent of versioned, and should only be set by calls to link_olh/unlink_instance that actually modify the olh. On the sync side, we don't look at the 'versioned' field for sync_object(). It doesn't look like there's any observable consequence of this bug, so lowering priority.

Actions

Also available in: Atom PDF