Actions
Bug #5049
closedscrub interval checking
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.
Updated by David Zafman almost 11 years ago
- Status changed from New to In Progress
- Assignee set to David Zafman
Updated by David Zafman almost 11 years ago
- Status changed from In Progress to Resolved
Actions