Project

General

Profile

Bug #19941

Updated by Loïc Dachary almost 7 years ago

Another "my OSDs don't come up on reboot" bug: 

 ceph-disk unconditionally calls setup_statedir() during initialisation, which manipulates /var/lib/ceph/tmp : 

 <pre> 
 def setup_statedir(dir): 
     # XXX The following use of globals makes linting 
     # really hard. Global state in Python is iffy and 
     # should be avoided. 
     global STATEDIR 
     STATEDIR = dir 

     if not os.path.exists(STATEDIR): 
         os.mkdir(STATEDIR) 
     if not os.path.exists(STATEDIR + "/tmp"): 
         os.mkdir(STATEDIR + "/tmp") 

     global prepare_lock 
     prepare_lock = FileLock(STATEDIR + '/tmp/ceph-disk.prepare.lock') 

     global activate_lock 
     activate_lock = FileLock(STATEDIR + '/tmp/ceph-disk.activate.lock') 
 ... 

 </pre> 
 This may fail for users with a separately mounted /var filesystem, where /var hasn't been mounted prior to 95-ceph-osd.rules being triggered.

Back