[tahoe-lafs-trac-stream] [Tahoe-LAFS] #1332: fails to start up on readonly filesystem when it tried to rmdir the incoming directory

Tahoe-LAFS trac at tahoe-lafs.org
Sat Sep 27 02:26:50 UTC 2014


#1332: fails to start up on readonly filesystem when it tried to rmdir the
incoming directory
------------------------------+-------------------------------------
     Reporter:  zooko         |      Owner:  zancas
         Type:  defect        |     Status:  new
     Priority:  major         |  Milestone:  soon
    Component:  code-storage  |    Version:  1.8.1
   Resolution:                |   Keywords:  easy availability error
Launchpad Bug:                |
------------------------------+-------------------------------------

Old description:

> I just started a storage server node on a filesystem that was mounted
> read-only, and it failed to start, emitting:
> {{{
> owhiela5 at 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.

New description:

 I just started a storage server node on a filesystem that was mounted
 read-only, and it failed to start, emitting:
 {{{
 owhiela5 at 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.

--

Comment (by Lcstyle):

 sounds like an easy in for 1.11?

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1332#comment:5>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list