Hi Amar, Thanks for your quick reply. My comments are inlined below: 2012/7/9 Amar Tumballi <amarts@xxxxxxxxxx>: > Hi Liu, > > >> I built GlusterFS 3.3 on Solaris 11, but unable to create a volume. >> > > Thats really good news !! You needed to make some changes in the code for > building on Solaris or did the source of glusterfs-3.3.0 work out of the > box? > > If you needed a patch, then it would be great if you can submit it, so we > can review and apply it upstream. > I made a few changes to pass the compilation. Before I submit the change, I need make it works correctly. The changes are small but I feel it might not easy to make it work on Solaris because of differences between solaris and linux. Here's my build steps, correct me if anything is wrong. $ sudo pkg install pkg:/developer/lexer/flex $ sudo pkg install pkg:/developer/parser/bison $ sudo pkg install libfuse (will install libfuse and pkg:/system/file-system/uvfs) $ sudo pkg install pkg:/developer/gcc-45 $CFLAGS=-m64 ./configure (need pass -m64 in CFLAGS, otherwise libtool will use 32-bit) GlusterFS configure summary =========================== FUSE client : no Infiniband verbs : yes epoll IO multiplex : no argp-standalone : yes fusermount : no readline : yes georeplication : no $gmake Now need make a few code changes: 1) glusterfs-3.3.0/rpc/xdr/src$ vi nlm4-xdr.h #define u_int32_t uint32_t #define u_int64_t uint64_t 2) glusterfs-3.3.0$ vi ./libglusterfs/src/compat.h /* This patch is not present in Solaris 10 and before */ /* #ifndef dirfd #define dirfd(dirp) ((dirp)->dd_fd) #endif */ Solaris 11 uses POSIX definition for "DIR" (https://blogs.oracle.com/paulie/entry/compiling_alpine_on_solaris_11) 3) glusterfs-3.3.0/cli/src$ vi cli-cmd-volume.c in cli_get_detail_status() , add #ifdef GF_LINUX_HOST_OS .. #endif for Linux-only attributes fs_name, mount_options, device, inode_size. $ sudo gmake install $ /usr/local/sbin/glusterfs --version Bus Error (core dumped) This is invalid address alignment issue on for 64-bit app on SPARC system. glusterfs-3.3.0/libglusterfs/src$ vi mem-pool.c /* #define GF_MEM_POOL_PAD_BOUNDARY (GF_MEM_POOL_LIST_BOUNDARY + GF_MEM_POOL_PTR + sizeof(int)) */ #define GF_MEM_POOL_PAD_BOUNDARY (GF_MEM_POOL_LIST_BOUNDARY + GF_MEM_POOL_PTR + sizeof(long)) That's all for the code changes. > >> # gluster volume create test-volume <myhost>:/test-vol >> (/test-vol is a ZFS filesystem) >> >> The glusterd's log said: >> ... >> [2012-07-09 17:12:45.417496] I >> [glusterd-volume-ops.c:83:glusterd_handle_create_volume] 0-glusterd: >> Received create volume req >> [2012-07-09 17:12:45.417761] E >> [glusterd-volume-ops.c:107:glusterd_handle_create_volume] 0-: Unable >> to get volume name >> ... >> >> I looked at the source code, it seems "dict_get_str (dict, "volname", >> &volname)" did not succeed. Any hint about it? >> > > Looks like the issue can be present both at 'cli/' part of the code, or even > at the glusterd. Need log of 'glusterd --debug' run, and CLI cmd from other > terminal. > I did use 'glusterd --debug'. Anything else I shoud try? BTW, gdb or dbx does not allow me to debug glusterd, it's weird. ... Running: glusterd --debug (process id 4047) t@1 (l@1) signal ILL (illegal addressing mode) in _sparcv9_fmadd_probe at 0xffffffff733792fc 0xffffffff733792fc: _sparcv9_fmadd_probe+0x000c: fmaddd %f0, %f0, %f2, %f0 (dbx) where current thread: t@1 =>[1] _sparcv9_fmadd_probe(0x0, 0x0, 0x0, 0x1, 0x7, 0xffffffff7e902a40), at 0xffffffff733792fc [2] OPENSSL_cpuid_setup(0xffffffff73570000, 0xffffffff735712a8, 0x119400, 0xffffffff73570000, 0xe, 0x6), at 0xffffffff73378fb8 [3] _init(0x0, 0x0, 0x0, 0xffffffff7f743080, 0x3, 0xffffffff7e902a40), at 0xffffffff73449fe8 [4] call_init(0xffffffff7f73e758, 0xffffffff73449fe0, 0x80, 0xffdfffff, 0x400000, 0xffffffff7ea01068), at 0xffffffff7f61c46c [5] setup(0x46, 0xffffffff7f200910, 0x0, 0xc, 0x0, 0x46), at 0xffffffff7f61b7e8 [6] _setup(0x3c084, 0xffffffffffffffff, 0x0, 0xffffffff7ffffc68, 0xffffffff7f73ee60, 0x100000040), at 0xffffffff7f62d7bc [7] _rt_boot(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xffffffff7f60dce0 (dbx) Thanks, Xinfeng > Regards, > Amar