Opened at 2011-01-18T22:36:19Z
Last modified at 2014-09-27T13:40:34Z
#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
 
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.
    
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".