Changes between Initial Version and Version 1 of Ticket #1566, comment 1


Ignore:
Timestamp:
2011-10-18T18:15:45Z (13 years ago)
Author:
davidsarah
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1566, comment 1

    initial v1  
    1 When a storage server receives a {{{remote_get_buckets}}} or {{{remote_slot_testv_and_readv_and_writev}}} request, it will try to create share objects for each of the shares it stores under that SI that are wanted by the client. If any of those shares have a corrupt header (typically resulting in a {{{UnknownMutableContainerVersionError}}}, {{{UnknownImmutableContainerVersionError}}}, or {{{struct.error}}} from the share class constructor), the whole request will fail, even though the server might hold other shares that are not corrupted.
    2 
    3 Unfortunately there is no way in the current storage protocol to report success for some shares and a failure for others. The options are:
    4  * the status quo -- no shares in the shareset are accessible;
    5  * shares with corrupt headers are ignored on read requests;
    6  * if ''all'' shares are corrupted then report one of the errors, but if only some shares in a shareset have corrupted headers, ignore them and allow access to the rest.
    7 
    8 I found this bug when working on the branch for #999, but I think it also applies to trunk. I will write a test.
     1[posted description as a comment by mistake]