unit tests for failure modes of small mutable files #207
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#207
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This ticket is the successor to #197. Here are all the pieces of the Small Distributed Mutable Files work that we need to finish:
Don't we need to switch-over-to-new-style-dirnodes to close #115 for 0.7.0?
In that case, we need to move the following items from this ticket into #115:
I will add the following items to this:
We have a UI for mutable files in the wui -- "overwrite" button
To improve the wui for this -- moving the "overwrite" form to a subpage -- is #277
These items remain:
unit tests for specific failure conditions:
small mutable files cleanup and polishto unit tests for failure modes of small mutable filesunit tests for specific failure conditions:
I've created other tickets for all the non-test items described here. This ticket is now solely about writing mutable-file unit tests.
This is something that I would like for 0.9.0, especially considering the change planned: #332 (K=1 for mutable files).
Since #312 and #332 are claiming to depend upon this one, we need to add
"test what happens when we see multiple encodings for the same SI" to the
list of tests that must be implemented.
Let's brainstorm about what sorts of tests we want to see, this this ticket
has been hanging around for so long (and accreted and shed so many items):
are not deterministic (we corrupt most of the shares, but since we don't
have control over what order we read them in, we may read good shares
early and thus short-circuit the rest). If we had a way to make the
system test hit servers in a specific order (oerhaps by delaying the
responses), then we could make this more consistent.
then pass it directly to the validation function in mutable.Retrieve,
and assert that it raises the correct exception. Corrupting the
signature should not cause a hash failure, for example.
we get the same consistency behavior that we expect
behavior is that we can accept any version with enough shares, worst
case is that we at least don't try to mix alternate encodings and get
garbage
Oh, and of course, an excellent way to develop these tests is to use the
code-coverage data ('make test-figleaf
TEST=allmydata.test.test_something.TestClass.tesT_method; make
figleaf-output; firefox coverage-html/index.html') and iterate until all of
the error-checking code is actually exercised.
I've found that doing this one test-case at a time is a great way to figure
out what my test is actually doing. Gathering coverage data for the whole
test run at once gives me confidence in the tests as a whole, but usually
loses too much data on about individual tests.
I've added tests for the multiple-encodings of a file. The same framework (in test_mutable.Roundtrip) can probably be used to test multiple-versions.
Hopefully someone will add some unit tests before we release 1.0.0.
Most of these items are now done: the big mutable-file refactoring handled a
lot of them. The ones that remain:
Publish, if a collision was detected, and is responsible for leaving the
file in a healthy state (although not in any particular version). #272
Minor issues that we can leave undone:
based mutable files (#217)
The goal is to reduce write to two RTT. Read is probably down to one or
two RTT already. #394
uncoordinated write errors forever.
closely. Tracked in #393.
new peers, but it won't move shares from doubled-up peers. #232
Since we have tickets for all the important ones, I'm closing this one out.
Milestone 1.0.1 deleted