From: Robert D. <ro...@in...> - 2011-03-16 17:49:31
|
Thanks, I will update with my results of your attachment. I've had no success with fuse on Nexenta, but I can continue to research the OpenSolaris fuse builds and update as I find anything worthwhile. -Rob _____ From: Michal Borychowski [mailto:mic...@ge...] Sent: Wednesday, March 16, 2011 6:39 AM To: 'Robert Dye' Cc: moo...@li... Subject: Re: [Moosefs-users] Compile on Nexenta Fails Hi! We checked more carefully this situation. Using not thread-safe "readdir" function everything went smoothly (instead of "readdir_r"). The structure keeping entries in directories looks on Nexenta like this: typedef struct dirent { ino_t d_ino; /* "inode number" of entry */ off_t d_off; /* offset of disk directory entry */ unsigned short d_reclen; /* length of this record */ char d_name[1]; /* name of file */ } dirent_t; We can read from this that there is just one byte reserved for the file name whereas in other operating systems it is typically 256 bytes. We made appropriate changes to our code so that it is now compatible with Nexenta. Please find the modified file in the attachement. (And we wait for the tips on how to install fusefs on Nexenta if you managed to install it) Kind regards Michal From: Robert Dye [mailto:ro...@in...] Sent: Tuesday, March 15, 2011 12:31 AM To: 'Michal Borychowski' Cc: moo...@li... Subject: Re: [Moosefs-users] Compile on Nexenta Fails Thanks for the info, looks like I had to submit a bug after all: Details: PROBLEM: When the mfschunkserver has chunks and a restart occurs, mfschunkserver will segfault REPRODUCE: OS: SunOS nexgfs 5.11 NexentaOS_134f i86pc i386 i86pc Solaris COMPILE: Add -D_POSIX_PTHREAD_SEMANTICS to mfschunkserver/MakeFile CFLAGS variable. RUN: Start the mfschunkserver and allow a few chunks to copy. Stop the process, and restart. OUTPUT: (gdb) run -d Starting program: /usr/local/sbin/mfschunkserver -d [New LWP 1] [New LWP 2] [LWP 2 exited] [New LWP 2] warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074 working directory: /usr/local/var/mfs lockfile created and locked initializing mfschunkserver modules ... hdd space manager: scanning folder /moose/ ... hdd space manager: scanning... 99% Program received signal SIGSEGV, Segmentation fault. [Switching to LWP 2] 0x30303030 in ?? () _____ From: Michal Borychowski [mailto:mic...@ge...] Sent: Tuesday, March 08, 2011 2:56 AM To: 'Robert Dye' Cc: moo...@li... Subject: Re: [Moosefs-users] Compile on Nexenta Fails Hi Robert! We'll give it a closer look, for the moment you can try to add in Makefile compilator option: "-D_POSIX_PTHREAD_SEMANTICS" It helps in Solaris 10, and should help in Nexenta too. Kind regards Michal Borychowski MooseFS Support Manager _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Gemius S.A. ul. Wołoska 7, 02-672 Warszawa Budynek MARS, klatka D Tel.: +4822 874-41-00 Fax : +4822 874-41-01 From: Robert Dye [mailto:ro...@in...] Sent: Friday, March 04, 2011 7:58 PM To: moo...@li... Subject: [Moosefs-users] Compile on Nexenta Fails Hello, When compiling moosefs on NexentaStor 3.0.4(Community), I use the following configure options: ./configure --disable-mfsmaster --disable-mfscgi --disable-mfscgiserv --disable-mfsmount After configuring, make returns the following output: Making all in mfschunkserver make[2]: Entering directory `/root/mfs-1.6.20-2/mfschunkserver' gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-bgjobs.o -MD -MP -MF .deps/mfschunkserver-bgjobs.Tpo -c -o mfschunkserver-bgjobs.o `test -f 'bgjobs.c' || echo './'`bgjobs.c mv -f .deps/mfschunkserver-bgjobs.Tpo .deps/mfschunkserver-bgjobs.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-csserv.o -MD -MP -MF .deps/mfschunkserver-csserv.Tpo -c -o mfschunkserver-csserv.o `test -f 'csserv.c' || echo './'`csserv.c mv -f .deps/mfschunkserver-csserv.Tpo .deps/mfschunkserver-csserv.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-hddspacemgr.o -MD -MP -MF .deps/mfschunkserver-hddspacemgr.Tpo -c -o mfschunkserver-hddspacemgr.o `test -f 'hddspacemgr.c' || echo './'`hddspacemgr.c hddspacemgr.c: In function 'hdd_chunk_remove': hddspacemgr.c:667: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c:675: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'hdd_chunk_get': hddspacemgr.c:802: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c:810: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'hdd_check_folders': hddspacemgr.c:1070: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c:1078: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'chunk_emptycrc': hddspacemgr.c:1290: warning: pointer targets in assignment differ in signedness hddspacemgr.c: In function 'chunk_readcrc': hddspacemgr.c:1328: warning: pointer targets in assignment differ in signedness hddspacemgr.c:1343: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'chunk_freecrc': hddspacemgr.c:1355: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'hdd_delayed_ops': hddspacemgr.c:1505: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c: In function 'hdd_io_begin': hddspacemgr.c:1608: warning: pointer targets in assignment differ in signedness hddspacemgr.c: In function 'hdd_term': hddspacemgr.c:3669: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness hddspacemgr.c:3677: warning: pointer targets in passing argument 1 of 'munmap' differ in signedness mv -f .deps/mfschunkserver-hddspacemgr.Tpo .deps/mfschunkserver-hddspacemgr.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-masterconn.o -MD -MP -MF .deps/mfschunkserver-masterconn.Tpo -c -o mfschunkserver-masterconn.o `test -f 'masterconn.c' || echo './'`masterconn.c mv -f .deps/mfschunkserver-masterconn.Tpo .deps/mfschunkserver-masterconn.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-replicator.o -MD -MP -MF .deps/mfschunkserver-replicator.Tpo -c -o mfschunkserver-replicator.o `test -f 'replicator.c' || echo './'`replicator.c mv -f .deps/mfschunkserver-replicator.Tpo .deps/mfschunkserver-replicator.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-chartsdata.o -MD -MP -MF .deps/mfschunkserver-chartsdata.Tpo -c -o mfschunkserver-chartsdata.o `test -f 'chartsdata.c' || echo './'`chartsdata.c mv -f .deps/mfschunkserver-chartsdata.Tpo .deps/mfschunkserver-chartsdata.Po gcc -DHAVE_CONFIG_H -I. -I.. -I../mfscommon -DMFSMAXFILES=10000 -D_USE_PTHREADS -DAPPNAME=mfschunkserver -D__EXTENSIONS__ -D_REENTRANT -pthreads -std=c99 -g -O2 -W -Wall -Wshadow -pedantic -MT mfschunkserver-main.o -MD -MP -MF .deps/mfschunkserver-main.Tpo -c -o mfschunkserver-main.o `test -f '../mfscommon/main.c' || echo './'`../mfscommon/main.c ../mfscommon/main.c: In function 'changeugid': ../mfscommon/main.c:548: error: too many arguments to function 'getgrnam_r' ../mfscommon/main.c:561: error: too many arguments to function 'getpwuid_r' ../mfscommon/main.c:569: error: too many arguments to function 'getpwnam_r' make[2]: *** [mfschunkserver-main.o] Error 1 make[2]: Leaving directory `/root/mfs-1.6.20-2/mfschunkserver' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/mfs-1.6.20-2' make: *** [all] Error 2 Ideas/Suggestions/Work-Around? |