summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* features/locks: Unwind with SUCCESS on non-blocking entrylk successPranith Kumar K2011-05-301-3/+4
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2949 (self-heal hangs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2949
* cluster/afr: Send Non-blocking lock in non-blocking entrylkPranith Kumar K2011-05-301-1/+1
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2949 (self-heal hangs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2949
* cluster/afr: Send the first child up/down after all its children notifyPranith Kumar K2011-05-303-54/+115
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2870 (Inconsistent xattr values when creating bricks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2870
* cluster/dht: notify should succeed when waiting for all subvols first eventPranith Kumar K2011-05-301-1/+3
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2870 (Inconsistent xattr values when creating bricks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2870
* glusterfsd-mgmt: include signal.hAnand Avati2011-05-301-0/+1
| | | | | | | | | Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* rpc: NetBSD portability fixesAnand Avati2011-05-301-0/+12
| | | | | | | | | | | | | | | NetBSD's <dirent.h> does a #defiine d_ino d_fileno. Since glusterfs declares structs with d_ino members, we must include <dirent.h> early so that d_ino get preprocessed into d_fileno conssitently. Also define proper xdr types for NetBSD. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* fuse: NetBSD portability fixesAnand Avati2011-05-301-1/+1
| | | | | | | | | | | Make sure NetBSD pulls proper FUSE header Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* quick-read: Fix dirname(3) usageAnand Avati2011-05-301-5/+6
| | | | | | | | | | | | | | | | | | | | | | | glibc dirname() modify the string it is given and returns it. glusterfs takes this behavior for granted, and assume that if it gives a malloc'ed string to dirname(), then it can free()) the return value. Here is what SUSv2 says: http://opengroup.org/onlinepubs/007908799/xsh/dirname.html "The dirname() function may modify the string pointed to by path, and may return a pointer to static storage" At least NetBSD returns a static storage. glusterfs will return it to a calling function that has the responsability to free it, causing a SIGSEGV. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* stat-prefetch: fix dirname(3) usageAnand Avati2011-05-301-2/+8
| | | | | | | | | | | | | | | | | | | | | | | glibc dirname() modify the string it is given and returns it. glusterfs takes this behavior for granted, and assume that if it gives a malloc'ed string to dirname(), then it can free()) the return value. Here is what SUSv2 says: http://opengroup.org/onlinepubs/007908799/xsh/dirname.html "The dirname() function may modify the string pointed to by path, and may return a pointer to static storage" At least NetBSD returns a static storage. glusterfs will return it to a calling function that has the responsability to free it, causing a SIGSEGV. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* fuse: NetBSD portability fixesAnand Avati2011-05-302-0/+13
| | | | | | | | | | | | | - NetBSD uses libperfuse(3). - Add @GF_FUSE_LDADD@ to fuse.so library dependecies so that -lperfuse is added at configure time for NetBSD. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* rpc: TCP_KEEPALIVE undeclared in NetBSDAnand Avati2011-05-301-1/+1
| | | | | | | | | | | Works around "error: 'TCP_KEEPALIVE' undeclared" on NetBSD Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* fuse: NetBSD portability fixesAnand Avati2011-05-303-4/+14
| | | | | | | | | | | | On NetBSD use libperfuse(3), rename umount2(2) as unmount(2), and skip inexistant /etc/mtab management. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* errno: NetBSD does not have EDOOFUSAnand Avati2011-05-301-0/+2
| | | | | | | | | | | Thanks to: Emmanuel Dreyfus <manu@netbsd.org> [avati@gluster.com: check for EDOOFUS instead of !NetBSD] Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* rpc: use AI_ADDRCONFIG selectivelyAnand Avati2011-05-303-0/+12
| | | | | | | | | | | | | NetBSD does not have AI_ADDRCONFIG. This patch has a side effect: glusterfsd listens on IPv6 adresses only by default. Option transport.socket.bind-address in volume server-tcp must be used to listen on an IPv4 address. Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* mount.glusterfs: The == operator is a non-standard bash extension. = should ↵Anand Avati2011-05-301-1/+1
| | | | | | | | | | | be used instead Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* rpc-clnt: consider the (re-)configured port for only one connect() callAmar Tumballi2011-05-303-12/+16
| | | | | | | | | | | this way, if remote_port is set due to queryport, that can fall back to default port (or 'option remote-port' value) when it disconnects. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2709 (issues with port (re-)configuration in client protocol) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2709
* cluster/stripe: Fix a typo in strncmp.Junaid2011-05-301-1/+1
| | | | | | | | Signed-off-by: Junaid <junaid@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2760 (Quota: stripe volume not showing the quota size properly) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2760
* mgmt/glusterd: Display a warning message to CLI in case of a corrupt geo-rep ↵Kaushik BV2011-05-303-41/+78
| | | | | | | | | | session Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2828 (gluster geo-rep stop should not show unsuccessful when the status is corrupt) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2828
* pump: Detect 'empty' brick and finish migration.Krishnan Parthasarathi2011-05-301-0/+8
| | | | | | | | Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2909 (replace brick of empty brick never says migration completed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2909
* mgmt/glusterd: Set option listen-backlog to 128Vijay Bellur2011-05-302-0/+17
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* rpc: Introduce option for listen()'s backlogVijay Bellur2011-05-302-1/+15
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* TOP: exit status should be non-zero for successshishir gowda2011-05-271-1/+1
| | | | | | | | | | | | The fault was incorrect loop. An extra iteration was being performed, and dict_get failed due to non-existant data leading to status being set to non-zero Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2882 (Make volume top command exit status as zero on success) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2882
* mgmt/glusterd: Start nfs after all bricks are started on glusterd re-startPranith Kumar K2011-05-271-1/+4
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* performance/io-cache: fix annoying logs during reconfigureAmar Tumballi2011-05-271-53/+56
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2945 (disturbing logs in io-cache reconfigure()) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2945
* cluster/dht: detect linkfiles mismatching gfids and delete+recreateAnand Avati2011-05-261-70/+107
| | | | | | | Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2522 ([glusterfs-3.1.3qa8]: rm -rf shows invalid argument) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2522
* reimplement invocation of external programs with run APICsaba Henk2011-05-2610-376/+282
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2562 (invoke external commands precisely with fork + exec) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2562
* libglusterfs: add 'run' sub-lib for safe and convenient invocation of ↵Csaba Henk2011-05-264-3/+678
| | | | | | | | | | | | | | | | | | | | | | | external programs Summary: - arguments first collected, then the invocation happens with fork + exec - flexible specification of arguments (besides si{mp,ng}le argument addition, support for adding multiple of them at a time / specifying one with printf style formatting) [ ==> goodbye printf percentage soup when composing commands ] - single point of error check - simple command runs are done in just one line - support for redirection, popen(3) like functionality API is documented in details in libglusterfs/src/run.h Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2562 (invoke external commands precisely with fork + exec) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2562
* libglusterfs: clean up memory typesCsaba Henk2011-05-266-74/+15
| | | | | | | | | | Unify them in one header, weed out overlap. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2562 (invoke external commands precisely with fork + exec) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2562
* Revert "temporary workaround for mtab update race thingy"Csaba Henk2011-05-264-6/+0
| | | | | | | | | | | | | | | | This reverts commit 59b9ab45a01d52e197ab6f76fd71e64910396d57. [c5d781e0 made this temporary workaround unnecessary] Conflicts: xlators/features/marker/utils/syncdaemon/resource.py Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2690 (race between mtab updates of mount and umount) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2690
* replicate: print favorite child as an int instead of unsigned intRaghavendra Bhat2011-05-201-1/+1
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2668 ([glusterfs-3.2.9qa7]: createbench error) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2668
* cli log level command and per translator log levelVenky Shankar2011-05-2016-33/+618
| | | | | | | | Signed-off-by: Venky Shankar <venky@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2714 (implement cli log level command) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2714
* debug/error-gen: include error-gen-mem-types.h in distribution tarball.Raghavendra G2011-05-191-1/+1
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2915 (error-gen-mem-types.h is not included in distribution tarball generated by doing 'make dist') URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2915
* upon daemonizing, wait on mtab update to terminate in parentCsaba Henk2011-05-199-48/+101
| | | | | | | | | | | | | | This fixes the race in between the mtab update attempts of mount and umount when we do a lazy umount right after mounting, in order to hide the given fs instance; yet this way we still avoid the deadlock of the fs and mount which we can hit if we wait unconditionally for the mtab update to terminate (cf. bz #511). Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2690 (race between mtab updates of mount and umount) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2690
* Introduce client-allow-insecure xlator-option.shishir gowda2011-05-124-1/+25
| | | | | | | | | | | | | | | | | | Allows glusterfs clients to bind to any port and does not restrict it to 1024. This is a xlator-option only, and is not supported in volume set cmd. The reason is, few clients may choose this, and few may not. Hence only supported as a xlator-option during mount time. For this to work with glusterfs, server.allow-insecure should be set to on Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2868 (Add xlator-option to support insecure-bind for clients) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2868
* cluster/stripe: make sure gfid is checked with valid dataAmar Tumballi2011-05-112-3/+7
| | | | | | | | | | | | | earlier logic of determining if different subvolumes have different gfid for same file had a flaw. It could have checked with a empty gfid field in case a reply comes from other subvolumes before first subvolume Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2773 ([glusterfs-3.2.0qa12]: stripe lookup says gfid different) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2773
* gnfs-loganalyse: Track fh & entry operations given filenameShehjar Tikoo2011-05-111-14/+138
| | | | | | | | | | | | Introduces support for outputting only those NFS operations that operate on a given filename and all the filehandles that are seen in the log file for that filename. Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 913 (NFS-specific log analyzer tool) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=913
* glusterd: send the duplicate brick info to the cliRaghavendra Bhat2011-05-112-6/+6
| | | | | | | | Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2803 ([glusterfs-3.2.0qa14]: volume create succeeds even though there is a volume with an export directory in the path of current volume) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2803
* Validate stripe-block-size optionshishir gowda2011-05-111-0/+12
| | | | | | | | | | Minimum size is 512 bytes and should be a multiple of 512 bytes. Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2861 (Stripe block-size has no check for valid option) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2861
* Move `self-heal completed' message to log level INFO.Sachidananda2011-05-111-1/+1
| | | | | | | | Signed-off-by: Sachidananda Urs <sac@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2867 (Move self-heal completed message to INFO level) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2867
* features/marker: whitespace cleanupRaghavendra G2011-05-114-198/+203
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2697 (Quota: add-brick creates the size go awkward, though it was perfect earlier) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2697
* cli: taking my revenge for forcing "geo-replication" into commandlineCsaba Henk2011-05-113-108/+137
| | | | | | | | | | | | | | | | | | | | | | | | Accept unambigous initial fragments of keywords, eg. gluster vol geo stat is recognized. Compared to readline integration: - no external dependency - works in shell too - works for inner keywords of operations (as in above example, or "vol crea <vol> repl 3 ...") - you save pressing tabs :) If not desired in customer builds, can be disabled by an #ifdef (not integrated into build system as of now); however, I think folks in house could like it. Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2757 (refactory gsync/gsyncd/syncdaemon/whatever to geo-replication) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2757
* syncdaemon: fix listing xattrs when there is none and failure handlingCsaba Henk2011-05-091-5/+4
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2859 (gsyncd crashes if master vol root has no xattrs) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2859
* syncdaemon: some refactor on monitorCsaba Henk2011-05-093-13/+17
| | | | | | | | | | | - detect faulty state early - keep the feedback fd in gsyncd module Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2537 (gsync autorestart) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2537
* marker: fill out the volume-mark properly in case of marking corruptionCsaba Henk2011-05-091-1/+1
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2858 (volume-mark corruption swallowed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2858
* syncdaemon: add --normalize-url optionCsaba Henk2011-05-091-5/+8
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2828 (gluster geo-rep stop should not show unsuccessful when the status is corrupt) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2828
* glusterd / geo-rep: set session owner to the uuid of the master vol instead ↵Csaba Henk2011-05-094-23/+30
| | | | | | | | | | of that of glusterd Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* glusterd / cli / rpc: move geo-replication reply parameters into dictCsaba Henk2011-05-095-83/+46
| | | | | | | | Signed-off-by: Csaba Henk <csaba@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
* posix: glusterfs.test should be removed xattr immediately after use.Krishnan Parthasarathi2011-05-091-2/+3
| | | | | | | | Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2609 (Error message not properly provided when trying to create a volume from a read-only source) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2609
* Detect read-only filesystem and fail the brick creation operation.Krishnan Parthasarathi2011-05-091-10/+30
| | | | | | | | Signed-off-by: Krishnan Parthasarathi <kp@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2609 (Error message not properly provided when trying to create a volume from a read-only source) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2609
* set: Fix incorrect nfs.rpc-auth strings in nfs_option_handlershishir gowda2011-05-091-2/+2
| | | | | | | | Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2866 (volume set for nfs rpc-auth.addr* option succeeds, but vol file not updated) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2866