#1332 new defect

fails to start up on readonly filesystem when it tried to rmdir the incoming directory

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

Description (last modified by Lcstyle)

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 (6)

comment:1 Changed at 2011-01-30T16:20:50Z by davidsarah

  • Milestone changed from undecided to 1.9.0
  • Owner set to davidsarah
  • Status changed from new to assigned

comment:2 Changed at 2011-07-16T21:10:45Z by zooko

  • Milestone changed from 1.9.0 to soon
  • Owner changed from davidsarah to arch_o_median
  • Status changed from assigned to new

Josh and I are going to fix this in our work on #999. Bumping it out of Milestone 1.9.0 and into Milestone "soon".

comment:3 Changed at 2011-07-26T04:13:05Z by arch_o_median

  • Owner changed from arch_o_median to Zancas

comment:4 Changed at 2011-08-11T04:40:50Z by Zancas

  • Owner changed from Zancas to zancas

comment:5 Changed at 2014-09-27T02:26:50Z by Lcstyle

  • Description modified (diff)

sounds like an easy in for 1.11?

comment:6 Changed at 2014-09-27T13:40:34Z by daira

  • Priority changed from major to normal

1.11 is frozen for work on new tickets, but it would be nice to have the the ability to run on a readonly filesystem for 1.12. I'm not sure this is the only bug preventing that, though.

Note: See TracTickets for help on using tickets.