[Gluster-devel] 3.4.0beta2 crash in conservative merge?

Emmanuel Dreyfus manu at netbsd.org
Sun May 26 07:35:26 UTC 2013


Emmanuel Dreyfus <manu at netbsd.org> wrote:

> See my other post: it crashes on line 818, because local->fd is NULL..
> Since it was used at line 804 without crashing, it must be a race
> conditon.

I do not really know what I am doing, but I am trying this:

--- xlators/cluster/dht/src/dht-helper.c.orig   2013-05-26 09:29:52.000000000 +0200
+++ xlators/cluster/dht/src/dht-helper.c        2013-05-26 09:30:47.000000000 +0200
@@ -798,17 +798,8 @@
 
         local->cached_subvol = dst_node;
         ret = 0;
 
-        /* once we detect the migration complete, the fd-ctx is no more
-           required.. delete the ctx, and do one extra 'fd_unref' for open fd */
-        ret = fd_ctx_del (local->fd, this, NULL);
-        if (!ret) {
-                fd_unref (local->fd);
-                ret = 0;
-                goto out;
-        }
-
         /* perform open as root:root. There is window between linkfile
          * creation(root:root) and setattr with the correct uid/gid
          */
         SYNCTASK_SETID(0, 0);
@@ -834,8 +825,17 @@
                         local->loc.path, dst_node->name);
                 goto out;
         }
 
+        /* once we detect the migration complete, the fd-ctx is no more
+           required.. delete the ctx, and do one extra 'fd_unref' for open fd */
+        ret = fd_ctx_del (local->fd, this, NULL);
+        if (!ret) {
+                fd_unref (local->fd);
+                ret = 0;
+                goto out;
+        }
+
         ret = 0;
 out:
 
         return ret;
-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org




More information about the Gluster-devel mailing list