Brian Warner [Wed, 16 Apr 2008 22:22:30 +0000 (15:22 -0700)]
mutable WIP: improve logging a bit
Brian Warner [Wed, 16 Apr 2008 21:49:47 +0000 (14:49 -0700)]
mutable WIP: rewrite ServerMap data structure, add tests
Brian Warner [Tue, 15 Apr 2008 23:08:32 +0000 (16:08 -0700)]
mutable WIP: rename NotEnoughPeersError to NotEnoughSharesError
Brian Warner [Tue, 15 Apr 2008 22:58:02 +0000 (15:58 -0700)]
mutable WIP: if corrupt shares cause a retrieve to fail, restart it once, ignoring those shares and using different ones
Brian Warner [Tue, 15 Apr 2008 22:57:28 +0000 (15:57 -0700)]
mutable WIP: merge conflicts in test_system.py
Brian Warner [Fri, 11 Apr 2008 21:31:16 +0000 (14:31 -0700)]
mutable WIP: split mutable.py into separate files. All tests pass.
Brian Warner [Fri, 11 Apr 2008 02:26:35 +0000 (19:26 -0700)]
mutable WIP: all tests pass, but publish/retrieve status is still stubbed out
Brian Warner [Fri, 11 Apr 2008 01:44:06 +0000 (18:44 -0700)]
mutable: WIP. make Publish work, remove some test scaffolding. test_system still fails.
Brian Warner [Tue, 8 Apr 2008 02:01:28 +0000 (19:01 -0700)]
mutable.py: checkpointing #303 work part 2, Publish is sketched out
Brian Warner [Sat, 5 Apr 2008 00:09:26 +0000 (17:09 -0700)]
mutable.py: checkpointing #303 work: retrieve does what I want, now starting in on publish
Brian Warner [Thu, 17 Apr 2008 18:13:39 +0000 (11:13 -0700)]
client: add 'node.uptime' to the stats we collect
Peter Secor [Wed, 16 Apr 2008 23:25:23 +0000 (16:25 -0700)]
native client (windows) - This update fixes Williams issue getting files to show up on the drive after
Peter Secor [Wed, 16 Apr 2008 17:52:21 +0000 (10:52 -0700)]
windows installer - added commands to stop the services if the user is installing over a running instance of Allmydata
Peter Secor [Wed, 16 Apr 2008 10:21:35 +0000 (03:21 -0700)]
native client - updated to correctly choose a drive letter if the previous drive letter has been otherwise taken while the client was not running
Brian Warner [Tue, 15 Apr 2008 23:06:09 +0000 (16:06 -0700)]
download: DownloadStopped isn't SCARY, lower the log severity
Brian Warner [Tue, 15 Apr 2008 18:20:38 +0000 (11:20 -0700)]
test_mutable.py: remove spurious Retrieve during a publish test
Brian Warner [Tue, 15 Apr 2008 18:20:04 +0000 (11:20 -0700)]
web/statistics: fix typo that make immutable-download stats missing
Brian Warner [Tue, 15 Apr 2008 18:14:58 +0000 (11:14 -0700)]
upload.py: add some notes: extensions are more like 419 than 1000 bytes
Brian Warner [Tue, 15 Apr 2008 18:11:29 +0000 (11:11 -0700)]
web: return a proper error upon POST with a bad t= value
Brian Warner [Tue, 15 Apr 2008 18:01:49 +0000 (11:01 -0700)]
misc/boodlegrid.tac: tweak sounds a bit
Brian Warner [Tue, 15 Apr 2008 06:42:20 +0000 (23:42 -0700)]
web: don't break status page when there is no helper running
Brian Warner [Tue, 15 Apr 2008 02:41:23 +0000 (19:41 -0700)]
helper: log SI in ciphertext-read-failed message
Brian Warner [Tue, 15 Apr 2008 02:26:53 +0000 (19:26 -0700)]
helper: add SI to logged progress messages
Brian Warner [Tue, 15 Apr 2008 01:36:27 +0000 (18:36 -0700)]
helper status: include percentage fetched+pushed, add helper-uploads to the upload/download list
Brian Warner [Mon, 14 Apr 2008 23:28:11 +0000 (16:28 -0700)]
webish: fix 'not running helper' status indicator on welcome page, add tests
Brian Warner [Mon, 14 Apr 2008 21:17:08 +0000 (14:17 -0700)]
stats: add /statistics web page to show them, add tests
Brian Warner [Mon, 14 Apr 2008 21:16:38 +0000 (14:16 -0700)]
offloaded: add fetched-percentage to the log message
Brian Warner [Mon, 14 Apr 2008 20:18:53 +0000 (13:18 -0700)]
helper stats: fix the /helper_status page, the recent conflict merging missed some uses. Added tests, updated the munin plugins to match
Brian Warner [Sat, 12 Apr 2008 05:51:54 +0000 (22:51 -0700)]
remove size constraint on ShareData: large directories caused errors which triggered massive memory usage. See #379 for details
Brian Warner [Sat, 12 Apr 2008 05:51:02 +0000 (22:51 -0700)]
mutable.py: catch errors during publish.. previously they were ignored. oops.
Zooko O'Whielacronx [Tue, 14 Aug 2007 16:33:49 +0000 (09:33 -0700)]
copy pyutil.time_format into src/allmydata/util
time_format() provides a good format for logging timestamps
Zooko O'Whielacronx [Mon, 14 Apr 2008 18:43:05 +0000 (11:43 -0700)]
doc: slightly clarify an error message
Zooko O'Whielacronx [Mon, 14 Apr 2008 18:08:23 +0000 (11:08 -0700)]
setup: mark Tahoe in the Trove classifiers as Production/Stable instead of Beta
Zooko O'Whielacronx [Mon, 14 Apr 2008 13:52:21 +0000 (06:52 -0700)]
setup: fix spacing in error output messages from makefile
Looking over Brian's shoulder the other day, I saw a message that said "Please seedocs/install.html".
Looking at the source code of the Makefile, it seems like it should say
@echo "ERROR: Not all of Tahoe's dependencies are in place. Please see \
docs/install.html for help on installing dependencies."
instead of its current:
@echo "ERROR: Not all of Tahoe's dependencies are in place. Please see\
docs/install.html for help on installing dependencies."
But, I remember changing this more than once in the past, so either there is a different version of make somewhere which interprets trailing backslashes differently, or someone (possibly me) has repeatedly gotten confused about this issue. Anyway, this time around, I'm trying:
@echo "ERROR: Not all of Tahoe's dependencies are in place. Please see docs/install.html for help on installing dependencies."
Even though it is > 80 chars.
Peter Secor [Fri, 11 Apr 2008 18:11:30 +0000 (11:11 -0700)]
native client - changing sector size to allow for larger uploads on Vista, XP doesn't seem to pay attention to those parameters on the virtual drive
Peter Secor [Fri, 11 Apr 2008 01:58:59 +0000 (18:58 -0700)]
native client - upgrading to 0.6 WinFUSE, need to add new files and remove old ones
Peter Secor [Fri, 11 Apr 2008 01:48:27 +0000 (18:48 -0700)]
native client - upgrade to WinFUSE 0.6, attempting to solve the issue where the Windows client thinks there isn't enough room on the virtual drive to do a copy
robk-tahoe [Fri, 11 Apr 2008 00:41:42 +0000 (17:41 -0700)]
stats_gatherer: fix typo in helper stats gathering.
robk-tahoe [Fri, 11 Apr 2008 00:25:44 +0000 (17:25 -0700)]
stats_gatherer: reconcile helper stats gathering
I'd implemented stats gathering hooks in the helper a while back.
Brian did the same without reference to my changes. This reconciles
those two changes, encompassing all the stats in both changes,
implemented through the stats_provider interface.
this also provide templates for all 10 helper graphs in the
tahoe-stats munin plugin.
robk-tahoe [Fri, 28 Mar 2008 00:25:16 +0000 (17:25 -0700)]
conflict reconciliation (part 1, stats gathering in helper)
robk-tahoe [Wed, 26 Mar 2008 01:30:46 +0000 (18:30 -0700)]
munin: added a series of munin graphs to report upload helper state
robk-tahoe [Wed, 26 Mar 2008 01:19:08 +0000 (18:19 -0700)]
stats: added stats reporting to the upload helper
adds a stats_producer for the upload helper, which provides a series of counters
to the stats gatherer, under the name 'chk_upload_helper'.
it examines both the 'incoming' directory, and the 'encoding' dir, providing
inc_count inc_size inc_size_old enc_count enc_size enc_size_old, respectively
the number of files in each dir, the total size thereof, and the aggregate
size of all files older than 48hrs
Brian Warner [Thu, 10 Apr 2008 23:47:52 +0000 (16:47 -0700)]
minor patch, to trigger the buildbot
Brian Warner [Thu, 10 Apr 2008 23:31:59 +0000 (16:31 -0700)]
back our runtime setuptools dependency down to 0.6a9 . We need a newer version to build, but can handle an older version to simply run a pre-built package
Brian Warner [Thu, 10 Apr 2008 23:29:59 +0000 (16:29 -0700)]
debian: use our own /usr/bin/tahoe, remove runtime dependency on setuptools (since it required egg-aware versions of all dependencies too)
Brian Warner [Thu, 10 Apr 2008 22:43:56 +0000 (15:43 -0700)]
debian: we now require setuptools at build time, and that or pkg_resources at runtime
Brian Warner [Thu, 10 Apr 2008 21:36:27 +0000 (14:36 -0700)]
debian: use setuptools-generated support/bin/tahoe instead of bin/tahoe, to match Zooko's change that makes our in-tree bin/tahoe spawn support/bin/tahoe
robk-tahoe [Thu, 10 Apr 2008 21:27:35 +0000 (14:27 -0700)]
key_generator: fix edge case found on windows
the windows (cygwin) buildslave has been failing the key generator test
it turns out that the time check on whether to refill the pool, and the
reactor, are interacting such that when the maybe_refill_pool call posted
on the reactor fires, the test on whether to fill the pool fails.
this adds a loop in the failure case to retry each 1s until it is time
to refill the pool, thus mitigating this timing accuracy problem on
windows.
robk-tahoe [Thu, 10 Apr 2008 01:23:06 +0000 (18:23 -0700)]
stats gathering: fix storage server stats if not tracking consumed
the RIStatsProvider interface requires that counter and stat values be
ChoiceOf(float, int, long) the recent changes to storage server to not
track 'consumed' led to returning None as the value of a counter.
this causes violations to be experienced by nodes whose stats are being
gathered.
this patch simply omits that stat if 'consumed' is not being tracked.
robk-tahoe [Thu, 10 Apr 2008 01:08:59 +0000 (18:08 -0700)]
stats gathering: added counters to upload,download,mutablewatcher
counting number of operations, and for immutable files, bytes transferred
Brian Warner [Thu, 10 Apr 2008 00:45:52 +0000 (17:45 -0700)]
oops, change debian dependency on zfec to 1.1, not 1.1.0
Zooko O'Whielacronx [Fri, 11 Apr 2008 01:44:07 +0000 (18:44 -0700)]
docs: yay! We can remove Twisted from the list of "Manual Dependencies" that users have to be aware of when installing
Zooko O'Whielacronx [Thu, 10 Apr 2008 22:46:10 +0000 (15:46 -0700)]
setup: we now require setuptools at run-time
Zooko O'Whielacronx [Thu, 10 Apr 2008 21:40:37 +0000 (14:40 -0700)]
setup: execute ../support/bin/tahoe from ./bin/tahoe
robk-tahoe [Wed, 9 Apr 2008 23:10:53 +0000 (16:10 -0700)]
stats_gatherer: verbose debug logging
one of the storage servers is throwing foolscap violations about the
return value of get_stats(). this adds a log of the data returned
to the foolscap log event stream at the debug level '12' (between
NOISY(10) and OPERATIONAL(20)) hopefully this will facilitate
finding the cause of this problem.
Peter Secor [Wed, 9 Apr 2008 22:18:43 +0000 (15:18 -0700)]
native client - small bug fix to run the used_quota update on startup as well as on upload
Peter Secor [Wed, 9 Apr 2008 21:06:14 +0000 (14:06 -0700)]
native client - adding change to allow drive properties to reflect actual usage of the virtual drive
Zooko O'Whielacronx [Wed, 9 Apr 2008 23:02:45 +0000 (16:02 -0700)]
docs: another small edit (don't mention docs/ directory in about.html now that docs/ is prominent on wiki:Docs)
Zooko O'Whielacronx [Wed, 9 Apr 2008 22:57:59 +0000 (15:57 -0700)]
docs: a couple of tiny docs updates
Zooko O'Whielacronx [Wed, 9 Apr 2008 18:30:53 +0000 (11:30 -0700)]
setup: setup_requires twisted, because foolscap <= 0.2.5 imports twisted in its setup.py and because we want trial to be available at build time
Brian Warner [Wed, 9 Apr 2008 17:23:01 +0000 (10:23 -0700)]
make debian dependencies match _auto_deps.py ones, for foolscap and zfec
Peter Secor [Wed, 9 Apr 2008 17:01:51 +0000 (10:01 -0700)]
windows installer - changed display name to Allmydata 3.0 for presentation purposes
Peter Secor [Wed, 9 Apr 2008 00:22:39 +0000 (17:22 -0700)]
native installer - updated installer to have a better formatted string in the install screen and in the Add/Remove Programs screen
robk-tahoe [Tue, 8 Apr 2008 18:06:58 +0000 (11:06 -0700)]
key_generator: remove poll timeouts from test
the timeouts on uses of 'poll' were there purely to make sure a test doesn't
poll indefinitely. however having such timeouts makes tests susceptible
to premature timeouts under high load, or on slow machines. (e.g. cygwin
slaves running in virtual machines on loaded hosts)
purportedly trial by default applies a timeout to tests to prevent them
hanging out indefinitely, so these poll timeouts are redundant and cause
intermittent failures on slow hosts. hence they're more bother than they're
worth, and should be culled.
robk-tahoe [Tue, 8 Apr 2008 18:06:06 +0000 (11:06 -0700)]
key_generator: fix a typo in the .tac generating create-key-generator
verbose is an object attribute, no longer settable via init args
Zooko O'Whielacronx [Wed, 9 Apr 2008 01:12:00 +0000 (18:12 -0700)]
setup: require twisted >= 2.4.0
Zooko O'Whielacronx [Tue, 8 Apr 2008 18:36:56 +0000 (11:36 -0700)]
don't do a du on startup if there is no size limit configured
This also turns off the production of the "space measurement done" log message, if there is no size limit configured.
Peter Secor [Tue, 8 Apr 2008 08:19:02 +0000 (01:19 -0700)]
native client - added icon to About screen, added ability to change backup client that is launched, changed capitalization in share namme to Allmydata, changed tool-tip to Allmydata 3.0, updated linking method to automatically link if the next file will take more than 60sec to upload or it's already been 5 minutes since the last link happened
Peter Secor [Mon, 7 Apr 2008 05:09:56 +0000 (22:09 -0700)]
native client - took out the Palissimo name, corrected file dates
Peter Secor [Fri, 4 Apr 2008 08:04:04 +0000 (01:04 -0700)]
native client - updated flashing icon, removed the word "Beta" from About screen, fixed some wording
robk-tahoe [Fri, 4 Apr 2008 01:43:46 +0000 (18:43 -0700)]
key_generator: fix timing, make tests more robust
previously there was an edge case in the timing of expected behaviour
of the key_generator (w.r.t. the refresh delay and twisted/foolscap
delivery). if it took >6s for a key to be generated, then it was
possible for the pool refresh delay to transpire _during_ the
synchronous creation of a key in remote_get_rsa_key_pair. this could
lead to the timer elapsing during key creation and hence the pool
being refilled before control returned to the client.
this change ensures that the time window from a get key request
until the key gen reactor blocks to refill the pool is the time
since a request was answered, not since a request was asked.
this causes the behaviour to match expectations, as embodied in
test_keygen, even if the delay window is dropped to 0.1s
robk-tahoe [Thu, 3 Apr 2008 23:26:24 +0000 (16:26 -0700)]
key_generator: up timeouts on keygen test
in both these cases, the timeout only serves to abort a stuck test, and
the key_generator should respond more quickly, but seeing test failures
in buildbot on some platforms suggests that the test is too susceptible
to timing issues on loaded buildslaves.
Brian Warner [Thu, 3 Apr 2008 23:08:22 +0000 (16:08 -0700)]
update our misc/dependencies to have foolscap-0.2.5
robk-tahoe [Thu, 3 Apr 2008 23:06:46 +0000 (16:06 -0700)]
auto_deps: require foolscap >= 2.5
the key_generator depends upon tub.setLocationAutomatically() which is only
available in foolscap > 0.2.5
robk-tahoe [Thu, 3 Apr 2008 22:57:07 +0000 (15:57 -0700)]
key_generator: service related cleanups, incorporation into system test
this cleans up KeyGenerator to be a service (a subservice of the
KeyGeneratorService as instantiated by the key-generator.tac app)
this means that the timer which replenishes the keypool will be
shutdown cleanly when the service is stopped.
adds checks on the key_generator service and client into the system
test 'test_mutable' such that one of the nodes (clients[3]) uses
the key_generator service, and checks that mutable file creation
in that node, via a variety of means, are all consuming keys from
the key_generator.
robk-tahoe [Thu, 3 Apr 2008 20:01:43 +0000 (13:01 -0700)]
key_generator: added a unit test
implemented a unit test of basic KeyGenService functionality,
fixed a bug in the timing of pool refreshes
Peter Secor [Thu, 3 Apr 2008 20:39:46 +0000 (13:39 -0700)]
native client - MikeB's updates to do delayed caching (introduces write delays if cache gets big), status indicator if uploading files on Windows (flashing system tray icon)
Brian Warner [Thu, 3 Apr 2008 00:48:55 +0000 (17:48 -0700)]
trial_figleaf.py: make our figleaf code compatible with both Twisted-8.x and Twisted-2.5.x
robk-tahoe [Wed, 2 Apr 2008 01:45:13 +0000 (18:45 -0700)]
added offloaded key generation
this adds a new service to pre-generate RSA key pairs. This allows
the expensive (i.e. slow) key generation to be placed into a process
outside the node, so that the node's reactor will not block when it
needs a key pair, but instead can retrieve them from a pool of already
generated key pairs in the key-generator service.
it adds a tahoe create-key-generator command which initialises an
empty dir with a tahoe-key-generator.tac file which can then be run
via twistd. it stashes its .pem and portnum for furl stability and
writes the furl of the key gen service to key_generator.furl, also
printing it to stdout.
by placing a key_generator.furl file into the nodes config directory
(e.g. ~/.tahoe) a node will attempt to connect to such a service, and
will use that when creating mutable files (i.e. directories) whenever
possible. if the keygen service is unavailable, it will perform the
key generation locally instead, as before.
Zooko O'Whielacronx [Tue, 1 Apr 2008 19:36:09 +0000 (12:36 -0700)]
setup: rename GNUmakefile to Makefile
It's evil and wrong to call something a "Makefile" when it contains code that can't be interpreted by POSIX make and requires GNU make.
But everyone else is doing it. ;-)
Brian Warner [Mon, 31 Mar 2008 22:28:45 +0000 (15:28 -0700)]
introducer.py: accelerate reconnection after being offline. Closes #374.
When we establish any new connection, reset the delays on all the other
Reconnectors. This will trigger a new batch of connection attempts. The idea
is to detect when we (the client) have been offline for a while, and to
connect to all servers when we get back online. By accelerating the timers
inside the Reconnectors, we try to avoid spending a long time in a
partially-connected state (which increases the chances of causing problems
with mutable files, by not updating all the shares that we ought to).
Brian Warner [Fri, 28 Mar 2008 23:18:30 +0000 (16:18 -0700)]
munin plugins: add 'graph_category tahoe'
Brian Warner [Fri, 28 Mar 2008 23:18:09 +0000 (16:18 -0700)]
add munin/tahoe-rootdir-space
Brian Warner [Fri, 28 Mar 2008 21:51:37 +0000 (14:51 -0700)]
munin/tahoe-introstats.py: put this graph in the 'tahoe' category
Peter Secor [Fri, 28 Mar 2008 19:25:08 +0000 (12:25 -0700)]
native client - removed unused file (used to be for elevating privileges) and changed installer to start up the AllmydataTray executable directly
Peter Secor [Fri, 28 Mar 2008 06:41:07 +0000 (23:41 -0700)]
native client - changing way the executables ask for elevated privileges
Brian Warner [Fri, 28 Mar 2008 00:33:58 +0000 (17:33 -0700)]
storage: emit log messages on bucket allocate/read and mutable writev
Zooko O'Whielacronx [Fri, 28 Mar 2008 02:01:29 +0000 (19:01 -0700)]
docs: fix anchor text of hyperlink to tarball
Brian Warner [Thu, 27 Mar 2008 23:50:30 +0000 (16:50 -0700)]
helper: add another munin plugin
Brian Warner [Thu, 27 Mar 2008 23:46:08 +0000 (16:46 -0700)]
helper: add more stats to webapi, at /helper_status
Brian Warner [Thu, 27 Mar 2008 22:55:32 +0000 (15:55 -0700)]
helper: add stats for the gatherer, show some on the webish welcome page
Brian Warner [Thu, 27 Mar 2008 18:33:42 +0000 (11:33 -0700)]
add GET /uri/URI/?t=deep-size, to compute the total size of immutable files reachable from a given directory
Peter Secor [Thu, 27 Mar 2008 04:26:31 +0000 (21:26 -0700)]
native client - updated to auto mount drive at start as well as when the drive is opened
Peter Secor [Thu, 27 Mar 2008 04:05:30 +0000 (21:05 -0700)]
native client - updated to automatically create a Backup directory, temp directory cleanup, automatic mounting and unmounting of the drive when starting and stopping the service, lots of Vista backup error fixes
Brian Warner [Thu, 27 Mar 2008 01:37:54 +0000 (18:37 -0700)]
node.py: make twistd.pid world-readable, so stats-gathering tools (specifically memory-measuring munin plugins) can see it
Brian Warner [Thu, 27 Mar 2008 01:22:07 +0000 (18:22 -0700)]
boodlegrid.tac: update sound samples
Brian Warner [Thu, 27 Mar 2008 01:20:07 +0000 (18:20 -0700)]
web-status: client methods like list_all_uploads() return Upload instances,
not status instances. Fix this. The symptom was that following a link like
'up-123' that referred to an old operation (no longer in memory) while an
upload was active would get an ugly traceback instead of a "no such resource"
message.
Brian Warner [Wed, 26 Mar 2008 23:09:34 +0000 (16:09 -0700)]
misc/boodlegrid.tac: tool to monitor a grid through its flogports
Zooko O'Whielacronx [Wed, 26 Mar 2008 19:13:21 +0000 (12:13 -0700)]
setup: remove bundled setuptools-0.6c7
Zooko O'Whielacronx [Wed, 26 Mar 2008 19:13:02 +0000 (12:13 -0700)]
setup: require setuptools >= v0.6c8