Opened at 2010-12-20T09:54:30Z
Last modified at 2013-11-14T19:08:48Z
#1280 new defect
bucket_counter.state and lease_checker.state might get corrupted after hard system shutdown — at Initial Version
Reported by: | francois | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | soon |
Component: | code-nodeadmin | Version: | 1.8.1 |
Keywords: | pickle reliability | Cc: | zancas |
Launchpad Bug: |
Description
After a hard system shutdown due to power failure, Tahoe node might not be able to start again automatically because files storage/bucket_counter.state or storage/lease_checker.state are empty.
The easy workaround is to manually delete the empty files before restarting nodes.
find /srv/tahoe/*/storage/bucket_counter.state -size 0 -exec rm {} \; find /srv/tahoe/*/storage/lease_checker.state -size 0 -exec rm {} \;
Here is what a startup attempt looks like in such case.
Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 614, in run runApp(config) File "/usr/lib/python2.5/site-packages/twisted/scripts/twistd.py", line 23, in runApp _SomeApplicationRunner(config).run() File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 330, in run self.application = self.createOrGetApplication() File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 416, in createOrGetApplication application = getApplication(self.config, passphrase) --- <exception caught here> --- File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 427, in getApplication application = service.loadApplication(filename, style, passphrase) File "/usr/lib/python2.5/site-packages/twisted/application/service.py", line 368, in loadApplication application = sob.loadValueFromFile(filename, 'application', passphrase) File "/usr/lib/python2.5/site-packages/twisted/persisted/sob.py", line 214, in loadValueFromFile exec fileObj in d, d File "tahoe-client.tac", line 10, in <module> c = client.Client() File "/opt/tahoe-lafs/src/allmydata/client.py", line 140, in __init__ self.init_storage() File "/opt/tahoe-lafs/src/allmydata/client.py", line 269, in init_storage expiration_sharetypes=expiration_sharetypes) File "/opt/tahoe-lafs/src/allmydata/storage/server.py", line 97, in __init__ self.add_bucket_counter() File "/opt/tahoe-lafs/src/allmydata/storage/server.py", line 114, in add_bucket_counter self.bucket_counter = BucketCountingCrawler(self, statefile) File "/opt/tahoe-lafs/src/allmydata/storage/crawler.py", line 449, in __init__ ShareCrawler.__init__(self, server, statefile) File "/opt/tahoe-lafs/src/allmydata/storage/crawler.py", line 86, in __init__ self.load_state() File "/opt/tahoe-lafs/src/allmydata/storage/crawler.py", line 195, in load_state state = pickle.load(f) exceptions.EOFError:
Note: See
TracTickets for help on using
tickets.