[Gluster-devel] 3.4.0beta2 crash in conservative merge?
Vijay Bellur
vbellur at redhat.com
Sun May 26 08:03:02 UTC 2013
On 05/26/2013 01:05 PM, Emmanuel Dreyfus wrote:
> 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;
> + }
> +
This patch in master could address the problem:
http://review.gluster.org/#/c/4974
Can you please check if it does and we can then have a backport to
release-3.4?
Thanks,
Vijay
More information about the Gluster-devel
mailing list