Project

General

Profile

Bug #51867

Updated by Ilya Dryomov almost 3 years ago

Reported and fixed by Will Smith <wsmith@linode.com>.    The ticket is for tracking purposes. 

 <pre> 
 When retrieving the status of a mirrored image from the Python rbd 
 library, a TypeError is raised. 

 ### To Reproduce: 

 Set up two Ceph clusters for block storage, and configure image 
 mirroring between their pools.    Create a least one image with mirroring 
 enabled, then run the following script on either cluster (once the image 
 exists everywhere): 

 ```python 
 import rados, rbd 

 CONF_PATH = "YOUR-CONF-PATH" 
 POOL_NAME = "YOUR-POOL-NAME" 
 IMAGE_LABEL = "YOUR-IMAGE-LABEL" 

 with rados.Rados(conffile=CONF_PATH) as cluster: 
   with cluster.open_ioctx(POOL_NAME) as ioctx: 
     with rbd.Image(ioctx, IMAGE_LABEL) as image: 
       image.mirror_image_get_status() 
 ``` 

 This will result in the following stack trace: 

 ``` 
 Traceback (most recent call last): 
   File "repo-bug.py", line 10, in <module> 
     image.mirror_image_get_status() 
   File "rbd.pyx", line 3363, in rbd.requires_not_closed.wrapper 
   File "rbd.pyx", line 5209, in rbd.Image.mirror_image_get_status 
 TypeError: list indices must be integers or slices, not str 
 ``` 

 </pre>

Back