#1943 new defect

storage servers should report if the filesystem containing shares has been unmounted

Reported by: daira Owned by:
Priority: normal Milestone: undecided
Component: code-storage Version: 1.9.2
Keywords: usability removable-disk Cc:
Launchpad Bug:

Description

A storage server might have its shares directory in a filesystem mounted from a removable disk. In that case, there is no indication of whether the disk has been removed; the server still appears to be connected.

Change History (2)

comment:1 Changed at 2013-04-13T03:11:40Z by RedEmerald

As expected, The tahoe storage node fails to return shares when the drive is unplugged.

Also as expected, if you try to upload a file, the storage server is skipped (assuming there are enough servers to make tahoe "happy").

And finally, once the external drive is reattached, shares are immediately retrievable and new shares are uploaded without issue.

Considering all of the above, this really is just a UI fix although it will probably require some code changes to make the node report it's status.

comment:2 Changed at 2013-04-13T13:04:33Z by gdt

I wouldn't call it a "UI" fix (tahoe has an odd culture of expecting a filesystem to be used by a human instead of by a computer (WUI)).

I'd call this ticket a specific case of the more general issue of fault handling and monitoring. An unmounted fs is not so different from one with bad permissions. The point is probably that if the server thinks it can't store shares (because it did some access(2)-like check, or because it tried and failed), then it needs to report that in the introducer protocol. It can still be online but without read access to shares it should have, or without write access, and this is useful information both to humans and programmatic clients.

It makes my head hurt to think about the proper behavior of doing repair when there is a server that says it has shares but can't get to them right now. I'd say this should be treated the same as the server not being present, for starters.

Note: See TracTickets for help on using tickets.