Changes between Initial Version and Version 2 of Ticket #1566


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

I will write a test.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1566

    • Property Owner set to davidsarah
    • Property Status changed from new to assigned
  • Ticket #1566 – Description

    initial v2  
     1When 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
     3Unfortunately 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
     8I found this bug when working on the branch for #999, but I think it also applies to trunk.