[tahoe-lafs-trac-stream] [tahoe-lafs] #1643: presence of MDMF in aliases break the CLI < v1.9.0
tahoe-lafs
trac at tahoe-lafs.org
Sun Dec 18 13:29:16 UTC 2011
#1643: presence of MDMF in aliases break the CLI < v1.9.0
-------------------------+-------------------------------------------------
Reporter: zooko | Owner:
Type: defect | Status: new
Priority: major | Milestone: undecided
Component: code- | Version: 1.9.0
mutable | Keywords: versioning forward-compatibility
Resolution: | backward-compatibility mutable mdmf aliases
Launchpad Bug: |
-------------------------+-------------------------------------------------
Comment (by zooko):
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.
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.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1643#comment:1>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list