#1332 new defect

fails to start up on readonly filesystem when it tried to rmdir the incoming directory — at Initial Version

Reported by: zooko Owned by:
Priority: normal Milestone: soon
Component: code-storage Version: 1.8.1
Keywords: easy availability error Cc:
Launchpad Bug:

Description

I just started a storage server node on a filesystem that was mounted read-only, and it failed to start, emitting:

owhiela5@ip-10-194-21-199:~/.tahoe$ tahoe start
STARTING /home/owhiela5/.tahoe
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/twisted/application/app.py", line 626, in run
    runApp(config)
  File "/usr/lib/python2.6/dist-packages/twisted/scripts/twistd.py", line 23, in runApp
    _SomeApplicationRunner(config).run()
  File "/usr/lib/python2.6/dist-packages/twisted/application/app.py", line 374, in run
    self.application = self.createOrGetApplication()
  File "/usr/lib/python2.6/dist-packages/twisted/application/app.py", line 439, in createOrGetApplication
    application = getApplication(self.config, passphrase)
--- <exception caught here> ---
  File "/usr/lib/python2.6/dist-packages/twisted/application/app.py", line 450, in getApplication
    application = service.loadApplication(filename, style, passphrase)
  File "/usr/lib/python2.6/dist-packages/twisted/application/service.py", line 390, in loadApplication
    application = sob.loadValueFromFile(filename, 'application', passphrase)
  File "/usr/lib/python2.6/dist-packages/twisted/persisted/sob.py", line 210, in loadValueFromFile
    exec fileObj in d, d
  File "tahoe-client.tac", line 10, in <module>
    c = client.Client()
  File "/usr/lib/pymodules/python2.6/allmydata/client.py", line 129, in __init__
    self.init_storage()
  File "/usr/lib/pymodules/python2.6/allmydata/client.py", line 258, in init_storage
    expiration_sharetypes=expiration_sharetypes)
  File "/usr/lib/pymodules/python2.6/allmydata/storage/server.py", line 76, in __init__
    self._clean_incomplete()
  File "/usr/lib/pymodules/python2.6/allmydata/storage/server.py", line 158, in _clean_incomplete
    fileutil.rm_dir(self.incomingdir)
  File "/usr/lib/pymodules/python2.6/allmydata/util/fileutil.py", line 215, in rm_dir
    raise excs[0]
exceptions.OSError: [Errno 30] Read-only file system: '/home/owhiela5/.tahoe/storage/shares/incoming'

Failed to load application: [Errno 30] Read-only file system: '/home/owhiela5/.tahoe/storage/shares/incoming'

client node probably not started

I guess _clean_incomplete() should catch, log, and ignore any failure to clean the incoming directory.

Change History (0)

Note: See TracTickets for help on using tickets.