mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-11 20:11:47 +00:00
immutable/checker.py: trap ShareVersionIncompatible too. Also, use f.check
instead of examining the value returned by f.trap, because the latter appears to squash exception types down into their base classes (i.e. since ShareVersionIncompatible is a subclass of LayoutInvalid, f.trap(Failure(ShareVersionIncompatible)) == LayoutInvalid). All this resulted in 'incompatible' shares being misclassified as 'corrupt'.
This commit is contained in:
@ -141,14 +141,15 @@ class Checker(log.PrefixingLogMixin):
|
|||||||
rrefutil.ServerFailure,
|
rrefutil.ServerFailure,
|
||||||
layout.LayoutInvalid,
|
layout.LayoutInvalid,
|
||||||
layout.RidiculouslyLargeURIExtensionBlock,
|
layout.RidiculouslyLargeURIExtensionBlock,
|
||||||
|
layout.ShareVersionIncompatible,
|
||||||
download.BadOrMissingHash,
|
download.BadOrMissingHash,
|
||||||
download.BadURIExtensionHashValue)
|
download.BadURIExtensionHashValue)
|
||||||
|
|
||||||
if failtype is DeadReferenceError:
|
if f.check(DeadReferenceError):
|
||||||
return (False, sharenum, 'disconnect')
|
return (False, sharenum, 'disconnect')
|
||||||
elif failtype is rrefutil.ServerFailure:
|
elif f.check(rrefutil.ServerFailure):
|
||||||
return (False, sharenum, 'failure')
|
return (False, sharenum, 'failure')
|
||||||
elif failtype is layout.ShareVersionIncompatible:
|
elif f.check(layout.ShareVersionIncompatible):
|
||||||
return (False, sharenum, 'incompatible')
|
return (False, sharenum, 'incompatible')
|
||||||
else:
|
else:
|
||||||
return (False, sharenum, 'corrupt')
|
return (False, sharenum, 'corrupt')
|
||||||
|
Reference in New Issue
Block a user