[OpenAFS-devel] Re: Salvager (from openafs-server-1.6.5-1.el6.x86_64) segmentation fault

Andrew Deason adeason@sinenomine.net
Tue, 13 Aug 2013 10:24:08 -0500


On Tue, 13 Aug 2013 11:23:07 +0200 (CEST)
Harald Barth <haba@kth.se> wrote:

> I assume the salvager tries to delete the directory entry .. and
> create it again new.
> 
> Looks to me like FindItem() in dir.c:Delete() came up empty handed, we
> got ENOENT which did Abort().
> 
> Do you think it's safe to change row 3986 to something less dramatic
> that Abort() or do you have a better suggestion?

This is possibly/probably fixed by gerrit 9104. The issue is that we
deleted the ".." entry earlier, and we try to delete it again and
assert. Gerrit 9104 should prevent the salvager from trying to delete it
twice. (This needs to be submitted to 1.6, as I don't think I see it
there anywhere.)

Regardless, I think there is an argument to be made for not asserting on
Delete()s if the next Create() succeeds anyway, but I'm not sure. The
reasoning for the existing code is probably that we don't want anything
to be "weird" while salvaging, since mistakes can lose or corrupt data.
But I'm not sure; express an opinion here if you have it :)

-- 
Andrew Deason
adeason@sinenomine.net