]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd.py: Fix seemingly-random segfaults
authorDan Mick <dan.mick@inktank.com>
Thu, 24 May 2012 02:21:30 +0000 (19:21 -0700)
committerDan Mick <dan.mick@inktank.com>
Thu, 24 May 2012 02:35:05 +0000 (19:35 -0700)
Avoid resetting Image.closed until image is successfully opened.

Fixes: #2475
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
src/pybind/rbd.py

index 7cb5d228dba15d17e67955fa59209cb25f1f3d65..55a9d67b7f58ed4fe3dda9e64ade8d814bacd0c4 100644 (file)
@@ -230,7 +230,6 @@ class Image(object):
         self.librbd = CDLL('librbd.so.1')
         self.image = c_void_p()
         self.name = name
-        self.closed = False
         if not isinstance(name, str):
             raise TypeError('name must be a string')
         if snapshot is not None and not isinstance(snapshot, str):
@@ -239,6 +238,7 @@ class Image(object):
                                    byref(self.image), c_char_p(snapshot))
         if ret != 0:
             raise make_ex(ret, 'error opening image %s at snapshot %s' % (name, snapshot))
+       self.closed = False
 
     def __enter__(self):
         return self