Brian Warner [Wed, 18 Feb 2009 02:30:53 +0000 (19:30 -0700)]
change RIStorageServer.remote_add_lease to exit silently in case of no-such-bucket, instead of raising IndexError, because that makes the upcoming --add-lease feature faster and less noisy
Brian Warner [Wed, 18 Feb 2009 00:15:11 +0000 (17:15 -0700)]
CLI #590: convert 'tahoe deep-check' to streaming form, improve display, add tests
Brian Warner [Tue, 17 Feb 2009 20:48:09 +0000 (13:48 -0700)]
interfaces.py: document behavior of add_lease/renew_lease/cancel_lease, before I change it
Brian Warner [Tue, 17 Feb 2009 18:08:38 +0000 (11:08 -0700)]
test_backupdb: improve error messages if the test fails
Brian Warner [Tue, 17 Feb 2009 06:35:53 +0000 (23:35 -0700)]
webapi #590: add streaming deep-check. Still need a CLI tool to use it.
Brian Warner [Tue, 17 Feb 2009 06:00:34 +0000 (23:00 -0700)]
test_web.Grid: change the CHECK() function to make it easier to test t= values with hyphens in them
Brian Warner [Tue, 17 Feb 2009 05:12:42 +0000 (22:12 -0700)]
test_web: improve checker-results coverage with a no-network -based test, enhance no-network harness to assist, fix some bugs in web/check_results.py that were exposed
Brian Warner [Tue, 17 Feb 2009 02:56:58 +0000 (19:56 -0700)]
web: fix handling of reliability page when Numeric is not available
Brian Warner [Tue, 17 Feb 2009 01:06:43 +0000 (18:06 -0700)]
test/no_network: update comments with setup timing: no_network takes 50ms, SystemTestMixin takes 2s (on my laptop)
Brian Warner [Tue, 17 Feb 2009 00:44:57 +0000 (17:44 -0700)]
test_upload: rewrite in terms of no-network GridTestMixin, improve no_network.py as necessary
Brian Warner [Tue, 17 Feb 2009 00:36:58 +0000 (17:36 -0700)]
test_download: rewrite in terms of no-network GridTestMixin, improve no_network.py as necessary
Brian Warner [Tue, 17 Feb 2009 00:23:48 +0000 (17:23 -0700)]
test_dirnode.py: convert Deleter to new no-network gridtest
Brian Warner [Tue, 17 Feb 2009 00:20:05 +0000 (17:20 -0700)]
test_cli.py: modify to use the new 'no-network' gridtest instead of SystemTestMixin, which speeds it up from 73s to 43s on my system
Brian Warner [Tue, 17 Feb 2009 00:19:47 +0000 (17:19 -0700)]
tests: fix no_network framework to work with upload/download and checker
Brian Warner [Tue, 17 Feb 2009 00:15:32 +0000 (17:15 -0700)]
client.py: improve docstring
Brian Warner [Mon, 16 Feb 2009 22:08:33 +0000 (15:08 -0700)]
test_cli: add test coverage for help strings
Brian Warner [Mon, 16 Feb 2009 21:58:44 +0000 (14:58 -0700)]
test/no_network: new test harness, like system-test but doesn't use the network so it's faster
Brian Warner [Mon, 16 Feb 2009 21:58:16 +0000 (14:58 -0700)]
interfaces.py: minor docstring edit
Zooko O'Whielacronx [Mon, 16 Feb 2009 21:15:58 +0000 (14:15 -0700)]
setup: if you sdist_dsc (to produce the input files for dpkg-buildpackage) then run darcsver first
Zooko O'Whielacronx [Mon, 16 Feb 2009 21:15:39 +0000 (14:15 -0700)]
doc: a few edits to docs made after the 1.3.0 release
Brian Warner [Mon, 16 Feb 2009 04:04:51 +0000 (21:04 -0700)]
test_cli: improve test coverage slightly
Brian Warner [Mon, 16 Feb 2009 03:32:10 +0000 (20:32 -0700)]
test_util: get almost full test coverage of dictutil, starting with the original pyutil tests as a base. The remaining three uncovered lines involve funny cases of ValueOrderedDict that I can't figure out how to get at
Brian Warner [Sun, 15 Feb 2009 23:24:51 +0000 (16:24 -0700)]
provisioning/reliability: add tests, hush pyflakes, remove dead code, fix web links
Brian Warner [Sun, 15 Feb 2009 23:23:26 +0000 (16:23 -0700)]
util/statistics: add tests, fix mean_repair_cost
Brian Warner [Sun, 15 Feb 2009 23:23:10 +0000 (16:23 -0700)]
test_repairer: hush pyflakes
Brian Warner [Sun, 15 Feb 2009 23:19:05 +0000 (16:19 -0700)]
lossmodel.lyx: move draft paper into docs/proposed/, since it's unfinished
Brian Warner [Sat, 14 Feb 2009 00:42:34 +0000 (17:42 -0700)]
build a 'reliability' web page, with a simulation of file decay and repair over time
Shawn Willden [Fri, 16 Jan 2009 03:56:48 +0000 (20:56 -0700)]
More lossmodel work, on repair.
Shawn Willden [Thu, 15 Jan 2009 04:00:58 +0000 (21:00 -0700)]
Loss model work (temp1)
Shawn Willden [Wed, 14 Jan 2009 03:12:35 +0000 (20:12 -0700)]
Statistics module
Added a statistics module for calculating various facets of
share survival statistics.
Zooko O'Whielacronx [Sun, 15 Feb 2009 17:35:10 +0000 (10:35 -0700)]
docs: relnotes-short.txt
linkedin.com imposed a strict limit on the number of characters I could post. This forced me to prune and prune and edit and edit until relnotes.txt was a quarter of its former size. Here's the short version.
Zooko O'Whielacronx [Sat, 14 Feb 2009 01:05:56 +0000 (18:05 -0700)]
TAG allmydata-tahoe-1.3.0
Zooko O'Whielacronx [Sat, 14 Feb 2009 01:05:00 +0000 (18:05 -0700)]
docs: a few last-minute edits to the docs for 1.3.0 (also this patch will accompany the tag and conveniently trigger the buildbots to build a 1.3.0 version)
Zooko O'Whielacronx [Sat, 14 Feb 2009 00:49:39 +0000 (17:49 -0700)]
setup: remove attempt to automatically satisfy dependency on pywin32
Brian Warner [Fri, 13 Feb 2009 23:55:34 +0000 (16:55 -0700)]
NEWS: mention #625 (deep-repair breaks when it tries to repair a read-only directory)
Brian Warner [Fri, 13 Feb 2009 21:53:37 +0000 (14:53 -0700)]
test_dirnode: #625 run deep-check on a readonly dirnode too
Zooko O'Whielacronx [Fri, 13 Feb 2009 21:12:45 +0000 (14:12 -0700)]
docs: CREDITS
Brian Warner [Fri, 13 Feb 2009 16:57:53 +0000 (09:57 -0700)]
figleaf_htmlizer: fix order of summary counters
Brian Warner [Fri, 13 Feb 2009 08:23:41 +0000 (01:23 -0700)]
Makefile: minor, add .PHONY declarations
Brian Warner [Fri, 13 Feb 2009 07:00:22 +0000 (00:00 -0700)]
figleaf_htmlizer: oops, re-ignore files that aren't under root, like code in auto-built eggs
Zooko O'Whielacronx [Fri, 13 Feb 2009 05:41:21 +0000 (22:41 -0700)]
setup: relnotes.txt mention the iPhone app and CIFS/SMB (tahoe-w32-client)
Zooko O'Whielacronx [Fri, 13 Feb 2009 05:37:38 +0000 (22:37 -0700)]
setup: make the "full version string" be "allmydata-tahoe/1.3.0" instead of "allmydata-tahoe-1.3.0" and the UserAgent string of the cli be "allmydata-tahoe/1.3.0 (tahoe-client)"
This is webbish. Thanks to kpreid for suggesting it.
Zooko O'Whielacronx [Fri, 13 Feb 2009 05:28:14 +0000 (22:28 -0700)]
docs: relnotes.txt final (!?) update for 1.3.0!
Zooko O'Whielacronx [Fri, 13 Feb 2009 05:16:21 +0000 (22:16 -0700)]
docs: known_issues.txt: my version of #615, remove "issue numbers", edits, move tahoe-1.1.0 issues to historical
Zooko O'Whielacronx [Fri, 13 Feb 2009 04:42:28 +0000 (21:42 -0700)]
docs: CREDITS
Brian Warner [Thu, 12 Feb 2009 22:18:29 +0000 (15:18 -0700)]
Makefile: add figleaf-delta-output, to render figleaf coverage differences with a previous run
Brian Warner [Thu, 12 Feb 2009 22:10:20 +0000 (15:10 -0700)]
figleaf_htmlizer: emit stats to stdout, so buildbot can see it
Brian Warner [Thu, 12 Feb 2009 22:04:12 +0000 (15:04 -0700)]
figleaf_htmlizer: render changes in coverage relative to a previous test run using --old-coverage
Zooko O'Whielacronx [Fri, 13 Feb 2009 00:04:47 +0000 (17:04 -0700)]
immutable repairer: fix DownUpConnector so that it satisfies short reads the were requested after the last write and before the close
This is probably the cause of the very rare "loss of progress" bug. This is tested by unit tests. A recent patch changed this to errback instead of losing progress, and now this patch is changing it again to return a short read instead of errbacking. Returning a short read is what the uploader (in encode.py) is expecting, when it is reading the last block of the ciphertext, which might be shorter than the other blocks.
Zooko O'Whielacronx [Thu, 12 Feb 2009 23:31:32 +0000 (16:31 -0700)]
immutable repairer: add an assertion that a certain value in this tricky function is always what I think it is
Zooko O'Whielacronx [Thu, 12 Feb 2009 23:48:53 +0000 (16:48 -0700)]
immutable repairer: add tests of how it handles short reads
Zooko O'Whielacronx [Thu, 12 Feb 2009 22:21:31 +0000 (15:21 -0700)]
nodeadmin: node stops itself if a hotline file hasn't been touched in 60 seconds now, instead of in 40 seconds
A test failed on draco (MacPPC) because it took 49 seconds to get around to running the test, and the node had already stopped itself when the hotline file was 40 seconds old.
Zooko O'Whielacronx [Thu, 12 Feb 2009 03:11:29 +0000 (20:11 -0700)]
immutable repairer: errback any pending readers of DownUpConnectorwhen it runs out of bytes, and test that fact
Brian Warner [Thu, 12 Feb 2009 03:05:15 +0000 (20:05 -0700)]
figleaf_htmlizer: more rearranging, behavior should still be unchanged
Brian Warner [Thu, 12 Feb 2009 02:56:07 +0000 (19:56 -0700)]
figleaf_htmlizer: break it up into subfunctions, behavior should still be unchanged
Brian Warner [Thu, 12 Feb 2009 02:40:50 +0000 (19:40 -0700)]
figleaf_htmlizer: rewrite in class form, behavior should be the same as before
Brian Warner [Thu, 12 Feb 2009 02:16:43 +0000 (19:16 -0700)]
figleaf_htmlizer: rewrite with twisted.python.usage, remove logging: should behave the same as before
Brian Warner [Thu, 12 Feb 2009 02:05:42 +0000 (19:05 -0700)]
figleaf_htmlizer: expand tabs, fix to 4-space indents. No functional changes.
Brian Warner [Thu, 12 Feb 2009 01:09:13 +0000 (18:09 -0700)]
Makefile: include the figleaf pickle in the uploaded coverage data, for later differential analysis
Brian Warner [Thu, 12 Feb 2009 01:04:34 +0000 (18:04 -0700)]
Makefile: fix test-clean, by ignoring _appname.py and removing src/allmydata_tahoe.egg-info
Zooko O'Whielacronx [Thu, 12 Feb 2009 00:31:08 +0000 (17:31 -0700)]
setup: from the perspective of darcs, src/allmydata/_appname.py is a very boring file, indeed
Zooko O'Whielacronx [Thu, 12 Feb 2009 00:18:16 +0000 (17:18 -0700)]
versioning: include an "appname" in the application version string in the versioning protocol, and make that appname be controlled by setup.py
It is currently hardcoded in setup.py to be 'allmydata-tahoe'. Ticket #556 is to make it configurable by a runtime command-line argument to setup.py: "--appname=foo", but I suddenly wondered if we really wanted that and at the same time realized that we don't need that for tahoe-1.3.0 release, so this patch just hardcodes it in setup.py.
setup.py inspects a file named 'src/allmydata/_appname.py' and assert that it contains the string "__appname__ = 'allmydata-tahoe'", and creates it if it isn't already present. src/allmydata/__init__.py import _appname and reads __appname__ from it. The rest of the Python code imports allmydata and inspects "allmydata.__appname__", although actually every use it uses "allmydata.__full_version__" instead, where "allmydata.__full_version__" is created in src/allmydata/__init__.py to be:
__full_version__ = __appname + '-' + str(__version__).
All the code that emits an "application version string" when describing what version of a protocol it supports (introducer server, storage server, upload helper), or when describing itself in general (introducer client), usese allmydata.__full_version__.
This fixes ticket #556 at least well enough for tahoe-1.3.0 release.
Zooko O'Whielacronx [Wed, 11 Feb 2009 22:52:53 +0000 (15:52 -0700)]
setup: add new darcsver-1.2.1 which includes Brian's and Nils Durner's patch to ignore non-ascii chars in XML output
Brian Warner [Wed, 11 Feb 2009 22:28:30 +0000 (15:28 -0700)]
backupdb: cosmetic: capitalize the no-pysqlite instructions properly. Thanks to Terrell Russell for the catch.
Brian Warner [Wed, 11 Feb 2009 22:01:59 +0000 (15:01 -0700)]
test_repairer: disable repair-from-corruption tests until other things are improved well enough to make it useful
Brian Warner [Wed, 11 Feb 2009 21:43:52 +0000 (14:43 -0700)]
NEWS: explain limitations of the new repairer
Zooko O'Whielacronx [Wed, 11 Feb 2009 21:19:04 +0000 (14:19 -0700)]
setup: removed bundled darcsver-1.2.0
(I'm about to add a new bundled darcsver-1.2.1, but I want to see what the buildbots will do when there is no bundled darcsver present.)
Zooko O'Whielacronx [Wed, 11 Feb 2009 18:19:35 +0000 (11:19 -0700)]
trivial: whitespace
Brian Warner [Wed, 11 Feb 2009 21:14:53 +0000 (14:14 -0700)]
docs/known_issues: mention #615 javascript-vs-frames, for zooko to improve/rewrite
Brian Warner [Wed, 11 Feb 2009 06:39:38 +0000 (23:39 -0700)]
storage: make add-lease work, change default ownernum=1 since 0 is reserved to mean 'no lease here'
Brian Warner [Wed, 11 Feb 2009 06:37:56 +0000 (23:37 -0700)]
#620: storage: allow mutable shares to be deleted, with a writev where new_length=0
Brian Warner [Wed, 11 Feb 2009 03:37:09 +0000 (20:37 -0700)]
test_cli.Backup: insert some stalls to make sure two successive backups get distinct timestamps, avoiding intermittent failures
Brian Warner [Wed, 11 Feb 2009 01:49:10 +0000 (18:49 -0700)]
#619: make 'tahoe backup' complain and refuse to run if sqlite is unavailable and --no-backupdb is not passed
Brian Warner [Tue, 10 Feb 2009 22:00:25 +0000 (15:00 -0700)]
NEWS: point out that 'tahoe backup' requires a 1.3.0-or-later client node
Brian Warner [Tue, 10 Feb 2009 21:44:12 +0000 (14:44 -0700)]
tests: increase the default timeout for SystemTestMixin -based tests to 300 seconds, since our slower buildslaves sometimes take longer than the default 120s
Zooko O'Whielacronx [Tue, 10 Feb 2009 19:12:45 +0000 (12:12 -0700)]
immutable: repairer: add a simple test to exercise the "leftover" code path, fix the bug (and rename the variable "leftover" to "extra")
Zooko O'Whielacronx [Tue, 10 Feb 2009 18:02:27 +0000 (11:02 -0700)]
docs: not-quite-final version of relnotes.txt for tahoe-1.3.0
Zooko O'Whielacronx [Tue, 10 Feb 2009 18:02:19 +0000 (11:02 -0700)]
docs: small edit to about.html
Zooko O'Whielacronx [Tue, 10 Feb 2009 09:48:43 +0000 (02:48 -0700)]
docs: NEWS: move the most exciting items to the top, break them out of less exciting categories, update a couple of stale bits, and a touch of editing
Zooko O'Whielacronx [Tue, 10 Feb 2009 09:01:02 +0000 (02:01 -0700)]
docs: edit about.html
Zooko O'Whielacronx [Tue, 10 Feb 2009 07:56:47 +0000 (00:56 -0700)]
immutable: tighten preconditions -- you can write empty strings or read zero bytes, and add the first simple unit test of DownUpConnector
Zooko O'Whielacronx [Tue, 10 Feb 2009 06:53:48 +0000 (23:53 -0700)]
immutable: tests: the real WRITE_LEEWAY is 35 (it was a mistake to move it from 10 to 35 earlier -- I had seen a failure in which it took 35 times as many writes as I thought were optimal, but I misread and thought it took only 20 times as many)
Zooko O'Whielacronx [Tue, 10 Feb 2009 06:46:05 +0000 (23:46 -0700)]
immutable: defensive programming: assert that the encrypted readable gave you no more than the number of bytes you asked for
(There is a bug in the current DownUpConnector which can cause it to give more bytes than you asked for on one request, and then less on the next, effectively shifting some of the bytes to an earlier request, but I think this bug never gets triggered in practice.)
Zooko O'Whielacronx [Tue, 10 Feb 2009 06:44:21 +0000 (23:44 -0700)]
docs: suggest Python 2.5 -- Python 2.6 is not as well tested yet
Zooko O'Whielacronx [Tue, 10 Feb 2009 03:09:31 +0000 (20:09 -0700)]
immutable: tests: sigh, raise, again the limit of how many extra writes you can do and still pass this test
Obviously requiring the code under test to perform within some limit isn't very meaningful if we raise the limit whenever the test goes outside of it.
But I still don't want to remove the test code which measures how many writes (and, elsewhere, how many reads) a client does in order to fulfill these duties.
Let this number -- now 20 -- stand as an approximation of the inefficiency of our code divided by my mental model of how many operations are actually optimal for these duties.
Zooko O'Whielacronx [Tue, 10 Feb 2009 03:08:41 +0000 (20:08 -0700)]
immutable: tests: assert that verifier gives a clean bill of health after corruption and repair (the previous patch mistakenly did this only after deletion and repair), and also test whether deleting seven other shares and then downloading works. Also count the number of shares stored in the local filesystem.
Zooko O'Whielacronx [Tue, 10 Feb 2009 02:01:49 +0000 (19:01 -0700)]
immutable: test: add a test after attempting to repair from corruption: does a full verify run give the file a clean bill of health? If not, the you haven't successfully repaired it.
This will make the repairer tests more consistent -- less accidentally passing due to getting lucky.
Zooko O'Whielacronx [Tue, 10 Feb 2009 01:29:56 +0000 (18:29 -0700)]
immutable: tests: put shares back to their pristine condition in between each test of corrupting-and-repairing them
This is important, because if the repairer doesn't completely repair all kinds of corruption (as the current one doesn't), then the successive tests get messed up by assuming that the shares were uncorrupted when the test first set about to corrupt them.
Brian Warner [Mon, 9 Feb 2009 21:50:04 +0000 (14:50 -0700)]
upload: add a think-of-the-compatibility note to UploadResults
Brian Warner [Mon, 9 Feb 2009 21:45:43 +0000 (14:45 -0700)]
helper #609: uploading client should ignore old helper's UploadResults, which were in a different format
Brian Warner [Mon, 9 Feb 2009 09:34:00 +0000 (02:34 -0700)]
test_runner: skip all spawnProcess-using tests on cygwin, since spawnProcess just hangs forever
Brian Warner [Mon, 9 Feb 2009 09:26:17 +0000 (02:26 -0700)]
test_runner.py: revert the CreateNode section to using runner() inline, rather than spawning a process, to get more precise coverage
Brian Warner [Mon, 9 Feb 2009 02:56:02 +0000 (19:56 -0700)]
storage #596: announce 'tolerates-immutable-read-overrun' to the version announcement, to indicate that a read() on an immutable share where offset+length is beyond the end of the file will return a truncated string instead of raising an exception
Brian Warner [Mon, 9 Feb 2009 02:41:27 +0000 (19:41 -0700)]
test_upload: add test of maximum-immutable-share-size, to complete the last item of #538
Brian Warner [Mon, 9 Feb 2009 00:47:48 +0000 (17:47 -0700)]
docs/specifications: add an outline of the spec documents we'd like to have some day
Brian Warner [Sat, 7 Feb 2009 22:14:40 +0000 (15:14 -0700)]
test_cli.Backup: capture stderr when sqlite is unavailable
Zooko O'Whielacronx [Sat, 7 Feb 2009 23:33:21 +0000 (16:33 -0700)]
docs: add mac/README.txt to explain the first few basic facts about what the files are in this directory
Brian Warner [Sat, 7 Feb 2009 21:06:26 +0000 (14:06 -0700)]
test_repairer: wrap comments to 80cols, my laptop does not have a wide screen. No functional changes.
Brian Warner [Sat, 7 Feb 2009 21:04:39 +0000 (14:04 -0700)]
immutable/checker: wrap comments to 80cols, my laptop does not have a wide screen. No functional changes.
Brian Warner [Sat, 7 Feb 2009 20:38:17 +0000 (13:38 -0700)]
test/common.py: in share-layout-reading code, use '>L' consistently, since '>l' doesn't specify the signedness and the windows tests appear to be failing with an endianness-like problem (version==0x01000000). Also use binary mode when editing sharefiles