From f82228c4af4c75db99b95611a5fbdaa6a856a45c Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Mon, 23 Oct 2017 17:44:23 +0800 Subject: [PATCH] osd/osd_type.cc: dump extents map object_info_t which is good for bug hunting and diagnosing. Signed-off-by: xie xingguo --- qa/standalone/scrub/osd-scrub-repair.sh | 72 ++++++++++++------------- src/osd/osd_types.cc | 13 ++++- 2 files changed, 48 insertions(+), 37 deletions(-) diff --git a/qa/standalone/scrub/osd-scrub-repair.sh b/qa/standalone/scrub/osd-scrub-repair.sh index c9c238ceab7..fcf843eb195 100755 --- a/qa/standalone/scrub/osd-scrub-repair.sh +++ b/qa/standalone/scrub/osd-scrub-repair.sh @@ -649,7 +649,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -681,7 +681,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|extents s 7 uv 36 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|extents s 7 uv 36 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "stat_error" ], @@ -710,7 +710,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:d60617f9:::ROBJ13:head(47'55 osd.0.0:54 dirty|omap|data_digest|extents s 7 uv 39 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:d60617f9:::ROBJ13:head(47'55 osd.0.0:54 dirty|omap|data_digest|extents s 7 uv 39 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "stat_error" ], @@ -810,7 +810,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|extents s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|extents s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "oi_attr_missing" ], @@ -890,7 +890,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|extents s 7 uv 9 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|extents s 7 uv 9 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "missing" ], @@ -962,7 +962,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|extents s 7 uv 66 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|extents s 7 uv 66 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -979,14 +979,14 @@ function TEST_corrupt_scrub_replicated() { { "shards": [ { - "object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|extents s 1 uv 67 dd 2b63260d alloc_hint [0 0 0])", + "object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|extents s 1 uv 67 dd 2b63260d alloc_hint [0 0 0] extents [0~1])", "size": 1, "errors": [], "osd": 0, "primary": false }, { - "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|extents s 7 uv 27 dd 2ddbf8f5 alloc_hint [0 0 0])", + "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|extents s 7 uv 27 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "size": 1, "errors": [ "obj_size_oi_mismatch" @@ -995,7 +995,7 @@ function TEST_corrupt_scrub_replicated() { "primary": true } ], - "selected_object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|extents s 1 uv 67 dd 2b63260d alloc_hint [0 0 0])", + "selected_object_info": "3:ffdb2004:::ROBJ9:head(102'63 client.4433.0:1 dirty|omap|data_digest|extents s 1 uv 67 dd 2b63260d alloc_hint [0 0 0] extents [0~1])", "union_shard_errors": [ "obj_size_oi_mismatch" ], @@ -1084,7 +1084,7 @@ EOF "primary": true } ], - "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:ce3f1d6a:::ROBJ1:head(47'54 osd.0.0:53 dirty|omap|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "data_digest_mismatch_oi", "size_mismatch_oi", @@ -1121,7 +1121,7 @@ EOF "primary": true } ], - "selected_object_info": "3:87abbf36:::ROBJ11:head(47'48 osd.0.0:47 dirty|omap|data_digest|extents s 7 uv 33 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:87abbf36:::ROBJ11:head(47'48 osd.0.0:47 dirty|omap|data_digest|extents s 7 uv 33 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "read_error" ], @@ -1152,7 +1152,7 @@ EOF "primary": true } ], - "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|extents s 7 uv 36 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:bc819597:::ROBJ12:head(47'52 osd.0.0:51 dirty|omap|data_digest|extents s 7 uv 36 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "stat_error" ], @@ -1291,7 +1291,7 @@ EOF "primary": true } ], - "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|extents s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest|extents s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "oi_attr_missing" ], @@ -1380,7 +1380,7 @@ EOF "primary": true } ], - "selected_object_info": "3:e97ce31e:::ROBJ2:head(47'56 osd.0.0:55 dirty|omap|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:e97ce31e:::ROBJ2:head(47'56 osd.0.0:55 dirty|omap|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "data_digest_mismatch_oi" ], @@ -1413,7 +1413,7 @@ EOF "primary": true } ], - "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|extents s 7 uv 9 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:f2a5b2a4:::ROBJ3:head(47'57 osd.0.0:56 dirty|omap|data_digest|extents s 7 uv 9 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "missing" ], @@ -1445,7 +1445,7 @@ EOF "primary": true } ], - "selected_object_info": "3:f4981d31:::ROBJ4:head(47'58 osd.0.0:57 dirty|omap|data_digest|extents s 7 uv 12 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:f4981d31:::ROBJ4:head(47'58 osd.0.0:57 dirty|omap|data_digest|extents s 7 uv 12 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "omap_digest_mismatch" @@ -1477,7 +1477,7 @@ EOF "primary": true } ], - "selected_object_info": "3:f4bfd4d1:::ROBJ5:head(47'59 osd.0.0:58 dirty|omap|data_digest|extents s 7 uv 15 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:f4bfd4d1:::ROBJ5:head(47'59 osd.0.0:58 dirty|omap|data_digest|extents s 7 uv 15 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "omap_digest_mismatch" @@ -1509,7 +1509,7 @@ EOF "primary": true } ], - "selected_object_info": "3:a53c12e8:::ROBJ6:head(47'50 osd.0.0:49 dirty|omap|data_digest|extents s 7 uv 18 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:a53c12e8:::ROBJ6:head(47'50 osd.0.0:49 dirty|omap|data_digest|extents s 7 uv 18 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "omap_digest_mismatch" @@ -1541,7 +1541,7 @@ EOF "primary": true } ], - "selected_object_info": "3:8b55fa4b:::ROBJ7:head(47'49 osd.0.0:48 dirty|omap|data_digest|extents s 7 uv 21 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:8b55fa4b:::ROBJ7:head(47'49 osd.0.0:48 dirty|omap|data_digest|extents s 7 uv 21 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "omap_digest_mismatch" @@ -1617,7 +1617,7 @@ EOF "primary": true } ], - "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|extents s 7 uv 66 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:86586531:::ROBJ8:head(82'62 client.4351.0:1 dirty|omap|data_digest|extents s 7 uv 66 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -1634,7 +1634,7 @@ EOF { "shards": [ { - "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|extents s 7 uv 27 dd 2ddbf8f5 alloc_hint [0 0 0])", + "object_info": "3:ffdb2004:::ROBJ9:head(47'60 osd.0.0:59 dirty|omap|data_digest|extents s 7 uv 27 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "data_digest": "0x1f26fb26", "omap_digest": "0x2eecc539", "size": 3, @@ -1645,7 +1645,7 @@ EOF "primary": false }, { - "object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|extents s 3 uv 68 dd 1f26fb26 alloc_hint [0 0 0])", + "object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|extents s 3 uv 68 dd 1f26fb26 alloc_hint [0 0 0] extents [0~3])", "data_digest": "0x1f26fb26", "omap_digest": "0x2eecc539", "size": 3, @@ -1654,7 +1654,7 @@ EOF "primary": true } ], - "selected_object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|extents s 3 uv 68 dd 1f26fb26 alloc_hint [0 0 0])", + "selected_object_info": "3:ffdb2004:::ROBJ9:head(122'64 client.4532.0:1 dirty|omap|data_digest|extents s 3 uv 68 dd 1f26fb26 alloc_hint [0 0 0] extents [0~3])", "union_shard_errors": [ "obj_size_oi_mismatch" ], @@ -1807,7 +1807,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -1848,7 +1848,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "missing" ], @@ -1966,7 +1966,7 @@ function corrupt_scrub_erasure() { ] } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2007,7 +2007,7 @@ function corrupt_scrub_erasure() { "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -2089,7 +2089,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(27'1 client.4155.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "read_error", "size_mismatch_oi", @@ -2135,7 +2135,7 @@ EOF "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(41'3 client.4199.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "missing" ], @@ -2259,7 +2259,7 @@ EOF "primary": false } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(48'6 client.4223.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2306,7 +2306,7 @@ EOF "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4288.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "size_mismatch_oi", "obj_size_oi_mismatch" @@ -2364,7 +2364,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:9175b684:::EOBJ1:head(21'1 client.4179.0:1 dirty|data_digest|extents s 7 uv 1 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "read_error", "size_mismatch_oi", @@ -2411,7 +2411,7 @@ EOF "primary": false } ], - "selected_object_info": "3:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest|extents s 7 uv 2 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:9babd184:::EOBJ2:head(29'2 client.4217.0:1 dirty|data_digest|extents s 7 uv 2 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "ec_hash_error" ], @@ -2453,7 +2453,7 @@ EOF "primary": false } ], - "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:b197b25d:::EOBJ3:head(37'3 client.4251.0:1 dirty|data_digest|extents s 7 uv 3 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "missing" ], @@ -2577,7 +2577,7 @@ EOF ] } ], - "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:5e723e06:::EOBJ4:head(45'6 client.4289.0:1 dirty|data_digest|extents s 7 uv 6 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [], "errors": [ "attr_value_mismatch", @@ -2623,7 +2623,7 @@ EOF "primary": false } ], - "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0])", + "selected_object_info": "3:8549dfb5:::EOBJ5:head(65'7 client.4441.0:1 dirty|data_digest|extents s 7 uv 7 dd 2ddbf8f5 alloc_hint [0 0 0] extents [0~7])", "union_shard_errors": [ "size_mismatch_oi", "ec_size_error", diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 536978a5d76..c616e55da46 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -5112,7 +5112,18 @@ ostream& operator<<(ostream& out, const object_info_t& oi) << " " << oi.alloc_hint_flags << "]"; if (oi.has_manifest()) out << " " << oi.manifest; - + if (oi.has_extents()) { + out << " extents ["; + for (interval_set::const_iterator p = oi.extents.begin(); + p != oi.extents.end();) { + out << p.get_start() << "~" << p.get_len(); + ++p; + if (p != oi.extents.end()) { + out << ", "; + } + } + out << "]"; + } out << ")"; return out; } -- 2.39.5