Bug #678

What if period == 0 in MDCache...purge_stray?

Added by Paul Komkoff over 2 years ago. Updated over 2 years ago.

Status:ResolvedStart date:01/01/2011
Priority:NormalDue date:
Assignee:Sage Weil% Done:

100%

Category:MDSSpent 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.

ceph-period.patch Magnifier (1.34 KB) Paul Komkoff, 01/01/2011 05:04 am

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

Also available in: Atom PDF