Changes between Initial Version and Version 1 of Ticket #1643, comment 1
- Timestamp:
- 2011-12-18T13:46:38Z (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #1643, comment 1
initial v1 1 1 This 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. 2 2 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.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.