| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Support for process state dump.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 213 (Support for process state dump)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
|
|\
| |
| |
| |
| | |
Conflicts:
xlators/mount/fuse/src/fuse-bridge.c
|
| | |
|
| |
| |
| |
| | |
Idea by Avati.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As of now, if a frame submit fails on server, there are no logs,
and clients will have missing frames (which leads to 'hangs').
Supporting situation like this very tricky without proper log
messages. As a step to make our log message lean and meaningful,
this log is important.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 190 (missing frames due to larger reply message size.. (ib-verbs))
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=190
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some weeks back, I'd separated the big lock into vmplock and mountlock.
See commit 304e4274ca9b0339539581c5413e3339078c1182 in mainline.
At that time, we did not have a solution to the problem
of when to init the vmplist in a thread-safe manner, since
there was no lock to protect the vmplock specifically, and that
when libgf_vmp_map_ghandle was called inside glusterfs_mount
so the "lock" was already being held.
Now that we have separate mount and vmp locks, the
accesses can be synced correctly.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 211 (libglusterfsclient: Race condition against vmplist in libgf_vmp_map_ghandle)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=211
|
| |
| |
| |
| |
| |
| |
| | |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 210 (libglusterfsclient: Enhance logging)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Till now, we've been doing a character by character comparison
between a given path and the VMP, to search for the glusterfs
handle for the given path.
This does not work for all cases and has been a known bug.
This commit changes the byte-by-byte comparison into a more
accurate component based comparison to fix search
failures.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 209 (VMP parsing through fstab has issues)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
if the lock's end point is LLONG_MAX, the corresponding
struct flock's len must be 0.
Previous code had LLONG_MAX and 0 reversed.
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Noticed that in few cases, where ib-verbs doesn't handle a bigger
sized buffer to be sent across, which happens without problem in
tcp. Caused frame losses in the case where server's reply msg was
bigger, hence the msg got dropped at the server end. With this patch
ib-verbs buffer size is fixed to 512KB. (4 x page-size)
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 190 (missing frames due to larger reply message size.. (ib-verbs))
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=190
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this option, 'single point of failure', in case of volfile server can be
avoided
Thanks to Cory Meyer <cory.meyer@gmail.com>
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
privileged port fails.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 140 (use appropriate loglevel to log in case of failure to bind to privileged socket)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=140
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an fd_t is fd_create'd, we need to call fd_bind on it to
ensure that any fd_lookup on the inode gets us this fd. We're not
doing this so translators like write-behind were not able to order
path-based requests at all resulting in some fops like stat, which
could be issued after a writev, overtaking a previous writev which
is still being written-behind.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 179 (fileop reports miscompares on read tests)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=179
|
|
|
|
|
|
|
|
|
|
|
| |
Earlier we have invalidated the iattr cache on writes. Now
we need to do so for reads also, so that we are not updating
the iattr cache with 0-filled stat received from io-cache.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 180 (fileop fails at chmod with stale file handle error over unfs3)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=180
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Till now we've been creating an iovec, storing references in it
to the application data and simply passing it on to the translator
tree. This means that the buffer being passed to the translators is
not at all associated with the memory ref'd by the iobref argument
to write fop. This is a problem when write-behind is a translator in
the tree since it assumes that the memory in the iovecs passed to
write fops is already refcounted by the iobref and so it simply copies
the address of the application data. The problem is that the application
can continue using this buffer, free it or over-write it destroying the
data that write-behind may write at a later time.
The solution involves copying the application's write buffer into
an iobuf which will be referred to by the iobref.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 178 (libglusterfsclient: Data corruption on using write-behind in translator tree)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=178
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 174 (booster: fd_ts, they are a leakin)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when logfile path is not specified as absolute path, the symbolic
link created to the logfile (only in invocation of glusterfs with
--run-id) might end up as a broken symbolic link.
for example, command-line invocation like below will result in
broken symbolic link:
glusterfsd -f /home/glusterfs/volfiles/nufa/nufa.vol
-l ../home/glusterfs/logs/nufa.f1.log --run-id nufatest /mnt/nufa/
symbolic link will be created at $PWD/../home/glusterfs/logs/nufa.f1.log
will have a value of ../home/glusterfs/logs/nufa.f1.log.<date>.<time>.<pid>.
this symlink might be broken.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 156 (Broken symbolic link when relative path is given for a log file)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=156
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 115 (./configure adds libglusterfsclient when it shouldn't)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=115
|
|
|
|
|
|
|
|
|
| |
always returned the value of second parameter (len) as a result.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 155 (The SuperFastHash function used in dictionaries is broken.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=155
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
There seems to a reproduceable corruption specifically of
the libglusterfs_client_local_t that is allocated for
the read call. Therefore, the subsequent access to fd inside
local leads to a segfault. This is a temporary fix.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 164 (libglusterfsclient: Segfault due to memory corruption of frame local in libgf_client_read)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=164
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In libgf_client_loc_fill, there is a possibility that all
the ino, par and name are specified as non-NULL,non-zero args.
So if an inode is located in the itable using the ino and the
subsequent search for the inode using the par-ino and the file
name does not result in an inode being found, the current
code over-writes the inode that was found through the ino. The
correct behaviour is to stop further searches if inode
was already found using ino.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the loc_t of the link being created, we must fill in the inode
of the old/target loc since this is a link operation. The
inode_link to the new parent is called in libgf_client_link.
This fixes a crash while running fileop over a fully-loaded
dist-repl vol file.
Ref: Bugzilla 161
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed to work around the replicate behaviour of
possibly returning device number for the same file from
different subvolumes.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The workaround for the DHT requirement for a lookup on /
needs to be done only once when the xlator graph is inited.
Doing it on every path's lookup results in a major performance
penalty when using distribute subvolumes upwards of 16, as reported
by Avati.
Ref: bug 152
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
|
|
|
|
|
|
|
|
|
| |
also did some minor enhancements in formating
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 151 (crash dump log should be in 'logviewer' friendly format)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=151
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
|