Skip to content

Commit 6b85e4d

Browse files
committed
osd/scrub: reinstate one-warning-per-chunk behaviour
Modify collect_omap_stats() to guarantee that only one 'large omap entry' warning message is logged per chunk, thus maintaining the existing behaviour. Unlike the existing behaviour - all 'large omap' entries are counted. Signed-off-by: Ronen Friedman <[email protected]>
1 parent 5e59c52 commit 6b85e4d

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

src/osd/scrubber/scrub_backend.cc

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -253,16 +253,20 @@ void ScrubBackend::collect_omap_stats(
253253
{
254254
m_omap_stats.omap_bytes += obj_in_smap.object_omap_bytes;
255255
m_omap_stats.omap_keys += obj_in_smap.object_omap_keys;
256+
256257
if (obj_in_smap.large_omap_object_found) {
257258
m_omap_stats.large_omap_objects++;
258-
std::string erm = fmt::format(
259-
"Large omap object found. Object: {} PG: {} ({}) Key count: {} Size "
260-
"(bytes): {}\n",
261-
ho, m_pg_id, m_pg_id, obj_in_smap.large_omap_object_key_count,
262-
obj_in_smap.large_omap_object_value_size);
263-
264-
clog.do_log(CLOG_WARN, erm);
265-
dout(5) << __func__ << ": " << erm << dendl;
259+
if (!this_chunk->m_large_omap_warning_issued) {
260+
this_chunk->m_large_omap_warning_issued = true;
261+
std::string erm = fmt::format(
262+
"Large omap object found. Object: {} PG: {} Key count: {} Size "
263+
"(bytes): {}\n",
264+
ho, m_pg_id, obj_in_smap.large_omap_object_key_count,
265+
obj_in_smap.large_omap_object_value_size);
266+
267+
clog.do_log(CLOG_WARN, erm);
268+
dout(5) << __func__ << ": " << erm << dendl;
269+
}
266270
}
267271
}
268272

src/osd/scrubber/scrub_backend.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,9 @@ struct scrub_chunk_t {
294294

295295
// EC-related:
296296
shard_id_map<bufferlist> m_ec_digest_map;
297+
298+
/// only one 'large OMAP' warning per chunk
299+
bool m_large_omap_warning_issued{false};
297300
};
298301

299302

0 commit comments

Comments
 (0)