Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion zfs_socket hangs with http://rainemu.swishparty.co.u k/git/zfs/
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Emmanuel Anne  
View profile  
 More options May 14 2010, 5:23 am
From: Emmanuel Anne <emmanuel.a...@gmail.com>
Date: Fri, 14 May 2010 11:23:19 +0200
Local: Fri, May 14 2010 5:23 am
Subject: Re: [zfs-fuse] zfs_socket hangs with http://rainemu.swishparty.co.uk/git/zfs/

1. I tried your command, and stopped after I got a terminal full of
dots, so I guess it works here. I'll try later with my smp laptop but
I don't think it will make any difference.
2. the zfs/zpool commands go with a precise version of zfs-fuse,
changing the ioc numbers just to make some tests seems crazy. If you
want to do some tests, use the patch_debug (I posted it some time ago
to the list, might eventually put it in contrib dir, I'll attach it
once more to this mail, it just changes the location of the socket +
the lock file to allow to run 2 instances of zfs-fuse together, one
for testing/debuging + the main one, very useful if like me you have
your home on zfs and still want to do some debuging stuff).
3. Your patch is mostly unreadable because it's merged into the
message instead of being a real attachement, but anyway, xattr.h comes
from libattr1-dev you don't seem to have looked for it for very long.

2010/5/14 Tino <valentin.hil...@googlemail.com>:

> Using http://rainemu.swishparty.co.uk/git/zfs/ master (with some
> changes to let compile it, see below) I get a hang of following
> command:

> while echo -n .; do zpool status >/dev/null; done

> This runs a time successfully (a few seconds) and then it hangs (no
> more dots).  Any command talking to /var/run/zfs/zfs_socket then does
> no more work, too, so the socket is dead.  Note that my machine is SMP
> (two cores).  Also note that the zfs filesystem stays online and
> accessible, so only the socket serving routine is affected.

> Can somebody confirm this or is my problem local only?  Thanks.

> Diff attached.  Notes to the diff:

> I changed ZFS_IOC because the numbering of commands might differ
> between ZFS versions.  So if you try out several zfs versions in
> parallel is too dangerous to perhaps invoke the wrong zpool command to
> a different running zfs-fuse daemon.  I recommend others trying out
> different zfs versions in parallel to give each version tested an
> unique ZFS_IOC like me, to prevent a wrong zpool to be able to talk to
> zfs-fuse successfully.

> Also ENOATTR is only present in xfs; Grepping the Internet I got the
> impression that the correct errno should be EDOM but I really do not
> know.  And attr/xattr.h is at sys/xattr.h at my side.

> zoo:~/src/zfs/bleedingedge/zfs/src# cat /etc/debian_version
> 5.0.4

> zoo:~/src/zfs/bleedingedge/zfs/src# uname -a
> Linux zoo 2.6.26-2-686 #1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/
> Linux

> zoo:~/src/zfs/bleedingedge/zfs/src# git diff master
> diff --git a/.gitignore b/.gitignore
> index ddea9d6..3706540 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -4,6 +4,8 @@
>  *.swp
>  *.orig
>  *.sconsign.dblite
> +*.lo
> +*.la

>  src/zfs-fuse/zfs-fuse
>  src/cmd/zdb/zdb
> @@ -11,3 +13,18 @@ src/cmd/zfs/zfs
>  src/cmd/zpool/zpool
>  src/cmd/ztest/ztest

> +/src/cmd/zstreamdump/zstreamdump
> +/src/lib/libumem/.deps/
> +/src/lib/libumem/.libs/
> +/src/lib/libumem/Doxyfile
> +/src/lib/libumem/Makefile
> +/src/lib/libumem/config.h
> +/src/lib/libumem/config.log
> +/src/lib/libumem/config.status
> +/src/lib/libumem/libtool
> +/src/lib/libumem/stamp-h1
> +/src/lib/libumem/umem.spec
> +/src/lib/libumem/umem_test
> +/src/lib/libumem/umem_test2
> +/src/lib/libumem/umem_test3
> +
> diff --git a/src/lib/libzfscommon/include/sys/fs/zfs.h b/src/lib/
> libzfscommon/include/sys/fs/zfs.h
> index 82cc2c9..08d62d4 100644
> --- a/src/lib/libzfscommon/include/sys/fs/zfs.h
> +++ b/src/lib/libzfscommon/include/sys/fs/zfs.h
> @@ -666,7 +666,7 @@ typedef struct ddt_histogram {
>  /*
>  * /dev/zfs ioctl numbers.
>  */
> -#define        ZFS_IOC         ('Z' << 8)
> +#define        ZFS_IOC         (('Z'+2) << 8)

>  typedef enum zfs_ioc {
>        ZFS_IOC_POOL_CREATE = ZFS_IOC,
> diff --git a/src/zfs-fuse/zfs_operations.c b/src/zfs-fuse/
> zfs_operations.c
> index 260adbb..3448181 100644
> --- a/src/zfs-fuse/zfs_operations.c
> +++ b/src/zfs-fuse/zfs_operations.c
> @@ -34,7 +34,7 @@
>  #include <sys/zfs_vfsops.h>
>  #include <sys/zfs_znode.h>
>  #include <sys/mode.h>
> -#include <attr/xattr.h>
> +#include <sys/xattr.h>
>  #include <sys/fcntl.h>

>  #include <string.h>
> @@ -374,7 +374,7 @@ static void zfsfuse_getxattr(fuse_req_t req,
> fuse_ino_t ino, const char *name,
>     vnode_t *new_vp = NULL;
>     error = VOP_LOOKUP(vp, (char *) name, &new_vp, NULL, 0, NULL,
> &cred, NULL, NULL, NULL);
>     if (error) {
> -       error = ENOATTR;
> +       error = EDOM;
>        goto out;
>     }
>     VN_RELE(vp);
> @@ -445,7 +445,7 @@ out:
>     VN_RELE(dvp);
>     ZFS_EXIT(zfsvfs);
>        if (error == ENOENT)
> -               error = ENOATTR;
> +               error = EDOM;
>     fuse_reply_err(req,error);
>  }

> --
> To post to this group, send email to zfs-fuse@googlegroups.com
> To visit our Web site, click on http://zfs-fuse.net/

--
zfs-fuse git repository :
http://rainemu.swishparty.co.uk/cgi-bin/gitweb.cgi?p=zfs;a=summary

--
To post to this group, send email to zfs-fuse@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/

  patch_debug
1K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.