Project

General

Profile

Actions

Bug #5049

closed

scrub interval checking

Added by Mark Nelson almost 11 years ago. Updated almost 11 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
David Zafman
Category:
OSD
Target version:
-
% Done:

0%

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

Description

In OSD.cc right now we set:

utime_t max = ceph_clock_now(g_ceph_context);
utime_t min = max;
min = g_conf>osd_scrub_min_interval;
max = g_conf>osd_scrub_max_interval;

and later do a check:

if (t > min) {
dout(10) << " " << pgid << " at " << t
<< " > min " << min << " (" << g_conf->osd_scrub_min_interval << " seconds ago)" << dendl;
break;
}

utime_t uses 32bit integer values for keeping track of seconds and nanoseconds, so doing a subtraction in this way with very large interval values (more than the current time) will cause the value to wrap and the test to fail.

Actions #1

Updated by David Zafman almost 11 years ago

  • Status changed from New to In Progress
  • Assignee set to David Zafman
Actions #2

Updated by David Zafman almost 11 years ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF