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


Ignore:
Timestamp:
2011-12-18T13:46:38Z (13 years ago)
Author:
zooko
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1643, comment 1

    initial v1  
    11This is a bit disappointing because we did quite a lot of work attempting to make ''forward-compatibility'' for caps, i.e. that the introduction of new types of caps would not break old installations of the software. If your software looks in a Tahoe-LAFS directory and finds therein a cap of a new type that your software doesn't know how to decode it will handle that situation relatively gracefully. However, I guess we didn't think about the possibility of a new, unknown type being in your private local state ({{{~/.tahoe}}}). That's what happens when a user downgrades—switches to using an older version of the software.
    22
    3 Looking at the code mentioned in the stack trace, it looks like all CLI commands parse all of the aliases [source:1.8.3/src/allmydata/scripts/common.py?annotate=blame&rev=4987#L84 at startup] (even if the CLI command isn't going to use the aliases, as in my case of {{{tahoe mkdir}}})), by calling [source:1.8.3/src/allmydata/uri.py?annotate=blame&rev=4250#L690 from_string_dirnode] on each one. {{{from_string_dirnode}}} calls {{{from_string}}} and then asserts that the result object is of a (known) directory cap type. If the CLI code had called [source:1.8.3/src/allmydata/uri.py?annotate=blame&rev=4250#L591 from_string] instead of {{{from_string_dirnode}}} it would not have this problem.
     3Looking at the code mentioned in the stack trace, it looks like all CLI commands parse all of the aliases [source:1.8.3/src/allmydata/scripts/common.py?annotate=blame&rev=4987#L84 at startup] (even if the CLI command isn't going to use the aliases, as in my case of {{{tahoe mkdir}}}), by calling [source:1.8.3/src/allmydata/uri.py?annotate=blame&rev=4250#L690 from_string_dirnode] on each one. {{{from_string_dirnode}}} calls {{{from_string}}} and then asserts that the result object is of a (known) directory cap type. If the CLI code had called [source:1.8.3/src/allmydata/uri.py?annotate=blame&rev=4250#L591 from_string] instead of {{{from_string_dirnode}}} it would not have this problem.