| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In client_open_cbk, client_opendir_cbk the list_add_tail macros were invoked with wrong
ordered arguments, causing the existing registered fd list to get unlinked from the
saved_fds list. The effects of this is far fetched - when transport disconnects, open
fds are no more marked bad as they are not reachable from the saved_fds list. After
reconnection, resumed access on this fd causes reference to invalid fds on the server.
It could appear in the form of 'unresolved fd' error, readdir happening on a file fd,
files reading from other files, etc.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 192 (sefault in posix-readdir)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=192
BUG: 126 (Immediate segfault when used for rootfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=126
BUG: 173 ([ glusterfs 2.0.6rc1 ] - "server SEG fault")
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=173
BUG: 194 (Apache+Booster results in inconsistent download size using wget)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=194
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the previous commit, the path info was removed to prevent the
segfault, which instead could have been provided from request
header directly. More specific information is required for debugging,
and hence adding the path log.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 189 (segfault in server-lookup)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=189
|
|
|
|
|
|
|
|
|
| |
When directories on different subvolumes have different ownerships, use the highest uid/gid till self-heal resolves the inconsistency
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 191 (random Permission denied errors)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=191
|
|
|
|
|
|
|
|
|
|
|
| |
The root cause of this error is not found yet. But this check will
make sure that there is no crash when the situation happens.
Segfault can happen when a readdir() call comes over file's fd.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 192 (sefault in posix-readdir)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=192
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
volume files.
Thanks to Cory Meyer <cory.meyer@gmail.com>
With this option, 'single point of failure', in case of volfile server can be
avoided.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 185 (Request to support secondary volfile-server option in mount.glusterfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=185
|
|
|
|
|
|
|
|
|
|
|
|
| |
When 'dict_unserialize' failed, the log message was trying to
print 'state->loc.path' and 'state->ino', which gets filled in
later stages in flow. Caused segmentation fault when there was
a failure.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 189 (segfault in server-lookup)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=189
|
|
|
|
|
|
|
|
|
| |
inode number.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 184 ([ glusterfs 2.0.6rc2 ] - Client Segfault while running fs-perf-test)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=184
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
priv->wait_count children.
- need_unwind was initialised to 1 in afr_utimens_wind_cbk causing replicate
to unwind just after first reply, irrespective of whether it was a success
or failure.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 71 (dns failure causing "Transport endpoint is not connected")
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=71
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 177 (replicate: On file/dir creation, replicate returns inode from random subvolumes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=177
|
|
|
|
|
|
|
|
|
|
|
|
| |
to continue with 'hashed' inode, even if inode_path() on the inode
fails. This will is needed for few lock operations, to unlock the
lock held on inode. (ie, it fixes 'rm -rf *' hang issue, seen from
multiple clients).
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
|
|
|
|
|
|
|
|
|
|
|
|
| |
afr_lk_cbk:
Use the original struct flock supplied by the
user to do further STACK_WIND's, and not the flock returned
by the previous STACK_WIND.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 159 (Client hangs when coherent byte range locks is attempted in replicate setup)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=159
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inodelk().
entrylk() and inodelk() should try to update loc->parent only if parent is not-NULL.
because it is not an error to have loc->parent == NULL for entrylk() and inodelk()
operations.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 162 (Replication segfaults with many nodes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=162
|
|
|
|
|
|
|
|
|
|
| |
Remember the inode number that had been returned in lookup_cbk
and set the stat buf->ino to the same.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 166 (libglusterfsclient: Cached stat buf inode is different from ino in inode_t)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=166
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 138 (create family calls do not return stat buf from read child)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=138
|
|
|
|
|
|
|
|
|
|
|
| |
Also modifies the inode-write ops to wait for the call
to read-child to return (whether success or failure)
before unwinding.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 125 (stat information not returned from the same subvolume always)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=125
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backport of http://patches.gluster.com/patch/561/ to release-2.0
Also, the failover version of afr_readdir_cbk is buggy and
crashes when it is called after a failover inevitably
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 150 (AFR readdir should not failover to other subvolume)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=150
|
|
|
|
|
|
|
|
|
|
|
|
| |
the lock operation on entry or inode is going to happen on only one
inode, and it doesn't need dentry (with info on parent) for the
lock operation to complete. Hence, in server_{inode,entry}lk() calls
after server_loc_fill, we -should not- be checking for parent inode.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 112 (parallel deletion of files mounted by different clients on the same back-end hangs and/or does not completely delete)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=112
|
|
|
|
|
|
|
|
|
|
|
|
| |
removed 'fuction ' prefix to function definitions which was very
much /bin/bash specific.
Thanks to Brent A. Nelson <brent@phys.ufl.edu> for the patch.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 139 (tiny glitch in mount.glusterfs in 2.0.4)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=139
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch helps to distribute load across an afr cluster
when you have clients with the same access patterns, such
as in benchmarking or map-reduce. By randomly offsetting
the initial read_child_rr, clients should distribute reads
over the afr nodes on average.
A better solution could be to randomly shuffle the children
instead of chosing a different initial offset. This should
average the reads better across the nodes, but I'm not
sure if there are any other consequences to doing this.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This needs to be exported in order to have the booster
Mount Point Bypass technique work through libglusterfsclient.
Booster uses the mount point to register with libglusterfsclient as
a VMP. Subsequently, all file operations on the mounted GlusterFS
mount point get redirected to libglusterfsclient.
This fixes bug 136.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 136 (booster does not redirect ops on GlusterFS mount point into libglusterfsclient)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=136
|
|
|
|
|
|
|
| |
Also fixes a bug in the "KLUDGE" part. It was setting lookup_buf
when it should have been setting local->cont.lookup.buf
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
changes come in two places.
configure.ac - define HAVE_FUSE_REPLY_IOV if fuse_reply_iov is
available in libfuse.
mount/fuse - use fuse_reply_iov() in place of fuse_reply_vec(), if
HAVE_FUSE_REPLY_IOV is defined.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
In AFR self-heal set timestamp of a freshly created missing entry
to that of the source entry.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
open() & create() calls should reset frame->local to NULL.
bz# 104
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
"fuse_opt_add_arg"
This makes it easier to adjust the option list, and also reduces redundancy.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
integer typecast warnings fixed
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
Write calls should not be pushed to background only when the
mandatory locking is enabled, in all other cases (eg: O_SYNC,
O_DIRECT etc), we should not be 'caching' any data, but the
calls can be pushed to the background
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
- though the previous commit fixes bug #29, this patch fixes bugs
arising in similar situations where xattrop is initiated by
xlators other than afr.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
each of the subvolume
- This patch fixes bug #29.
- Using separate copies of dictionaries also eliminates a potential bug in a
setup consisting of afr with a posix and client, each having io-threads on
top as children. Since posix_xattrop after performing required operations
on the xattr array passed in dictionary, sets the result at the same key
and in the same dictionary passed as input argument,
there can be race conditions where in the results of the operation on
posix-child can be sent to the other child as input argument for xattrop,
which ofcourse is wrong.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Thhie change removes a huge inefficiency in file open
path where every open resulted in dictionary operations
in order to let the client maintain a list of fd_t's being
used over a particular client context.
Resolves: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
This commit reduces CPU usage of gf_fd_unused_get drastically by
making it O(1) instead of O(n).
Related to: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=16
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
I noticed that there were some minor spelling mistakes/typos in some
of the source files. This patch fixes the ones I've found.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
This patch is a step towards giving compatibility between the versions of
GlusterFS. Now onwards, the protocol-version won't depend on release
versions. In general, multiple glusterfs versions can have common
protocol-version.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ref: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=37
earlier instead of path, it used to take port number, which is an
option (-o server-port=<port>), now.
new syntax is
bash# mount -t glusterfs <hostname>:<path/key> [mountpoint]
[This patch is backward compatible with earlier syntax]
bash# mount -t glusterfs <hostname>:<port> [mountpoint]
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
Ref: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=35
The check done earlier was not handling the case when a 'op' is == MAX_VALUE (which
is not defined), and used to skip to the next array (like gf_mops[MAX] == gf_cbks[0])
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
With this patch, one can fetch any volumefile which is not pre-defined in
volume file with 'option' in server protocol volume, instead clients can
fetch the volume files based on the key name itself [From the confdir only]
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
mount.<fstype> script/program should return success in case when it finds
duplicate mounts. It was returning failure earlier. Someversions of
automount programs had issues with this behavior.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
local->loc should be properly filled while creating a linkfile. otherwise
this causes the segfault in underlying client-protocol layer.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
the current msg is getting printed in warning level. Instead changed
it to debug, as the msg specific each node being full is already getting
printed in higher priority, hence this msg looks excessive.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|