Bug #678
What if period == 0 in MDCache...purge_stray?
| Status: | Resolved | Start date: | 01/01/2011 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | Sage Weil | % Done: | 100% | |
| Category: | MDS | Spent time: | 0.50 hour | |
| Target version: | v0.24.1 | |||
| Source: | Severity: | |||
| Backport: | Reviewed: | |||
| Tags: |
Description
Program terminated with signal 8, Arithmetic exception.
#0 0x000000000052f8c2 in MDCache::purge_stray (this=0x240c9b0, dn=0x7f49e86c05a8) at mds/MDCache.cc:7413
7413 uint64_t num = (to + period - 1) / period;
Workaround attached.
History
#1 Updated by Sage Weil over 2 years ago
The question is whether this was a regular file (shouldn't have a 0 period!) or a directory (we need to delete the metadata objects, and the old purge logic is useless anyway). Either way a fix is in order, with the above 0 check for sanity.
#2 Updated by Sage Weil over 2 years ago
- Target version set to v0.24.1
#3 Updated by Paul Komkoff over 2 years ago
Based on what I was doing when this asplode I'd say it's either a directory or a file created but not yet written to and client then crashed. But it's a speculation as I nuked the coredump away already.
#4 Updated by Sage Weil over 2 years ago
- Category set to MDS
- Status changed from New to Resolved
- Assignee set to Sage Weil
