| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See http://cppcheck.sf.net
[./build/libglusterfs/src/y.tab.c:2104]: (error) Memory leak: cmd
[./libglusterfs/src/md5.c:306]: (error) Resource leak: f
[./xlators/debug/io-stats/src/io-stats.c:1396]: (error) Possible null pointer dereference: this - otherwise it is redundant to check if this is null at line 1402
[./xlators/cluster/stripe/src/stripe.c:3597]: (error) Memory leak: dup_str
[./xlators/debug/trace/src/trace.c:2426]: (error) Possible null pointer dereference: this - otherwise it is redundant to check if this is null at line 2429
These appear in rarely hit error cases or test/demo code so nothing
serious, in fact.
Signed-off-by: Csaba Henk <csaba@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 420 (fix leaks pointed out by cppcheck static analyzer)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=420
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
creation fops.
This fixes fuse_create_cbk conflict warnings and random errors while
running dbench (typically open handle failure with ENOENT).
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Error handling in afr_lookup_cbk was faulty because it
did not give priority to errors such as ESTALE over ENOENT,
and ENOENT over other errors. This patch fixes that, and
also breaks up afr_lookup_cbk into multiple logical functions.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 205 ([ glusterfs 2.0.6rc4 ] - Hard disk failure not handled correctly)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=205
|
|
|
|
|
|
|
|
|
|
|
|
| |
when active_sink count is 0, the code proceeded into a dangerous loop
resulting in a crash while issuing the call or in the callback
afr_sh_data_setattr_cbk or afr_sh_data_flush_cbk
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
| |
add logging of fop name, callid number and make logging more friendly
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
|
| |
reset pre_op_done[i] to 0 after issuing a postop in flush. this was
missed during the introduction of pre_op_done[] array and was resulting
in a lot of spurious self heals when spurious flushes were received
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
|
|
| |
When checksum fop returns error, mark for terminating the loop at the end
of the iteration (when all checksum calls of that iteration return) and
not immediately
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 320 (Improve self-heal performance)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=320
|
|
|
|
|
|
|
|
|
|
| |
state->fd validation should be done _after_ resolve_and_resume()
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from 1MB.
- protocol restricts the maximum buffer size that can be received over network
to 1MB. Since the buffer holding reply of lookup should also contain the
lookup header and other key/value pairs of xattr_reply dict, the maximum
file size that can be fetched through dictionary cannot be equal to 1MB.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 419 (Issues with writing files of size >= 1MB)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=419
|
|
|
|
|
|
|
|
|
|
|
|
| |
maintaining unify is not feasible, and its design of namespace is
not scalable too. hence moving it to 'legacy/' directory..
Thanks to unify, we learnt something about rename(). 'cluster/unify' has
served GlusterFS well for more than 2years, and its the time to say
goodbye :-(
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
rbthash makes use of 1 bucket and a common mem-pool is being used for all rbt entries.
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 221 (stat prefetch implementation)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
|
|
|
|
|
|
|
|
|
|
| |
normal log.
Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
| |
server/protocol.
Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes in libglusterfs/rbthash:
rbthash_table_init() now takes a mem-pool argument.
The mem-pool argument would be mutually exclusive to expected_entries.
If expected_entries is provided, mem-pool would be ignored and vice-versa.
Changes in io-cache:
1) Moved rbthash creation to readv.
2) rbthash makes use of 1 rbt instead of 4096
3) A global mem-pool is being used in place of a mem-pool per rbt.
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 335 (Io-cache optimization)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now nufa uses dht_conf->private variable to store its
contents, and doesn't pollute distribute's structures.
It used to hang earlier as layout_lock was not INIT()'d.
whitespace-cleanup done on the code too.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 409 (implement a switch scheduler)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=409
|
|
|
|
|
|
|
|
|
|
|
| |
switch translator is a wrapper around distribute to work for a
pattern based scheduling.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 409 (implement a switch scheduler)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=409
|
|
|
|
|
|
|
|
|
|
|
|
| |
This extra check is needed only in case where setup is
"server -> chain -> client", where for the root inode, inode->ino
is not updated in the first lookup call, hence used to crash.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 377 (segfault in protocol/client with chaining)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=377
|
|
|
|
|
|
|
|
| |
Signed-off-by: Harshavardhana <harsha@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 410 (Typo in gf_proc_dump for attribute_timeout)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=410
|
|
|
|
|
|
|
|
|
|
|
|
| |
stripe code assumes in many places that it will have more than one subvolume,
but the strict check was not there in init, hence, if somebody configures stripe
with just one subvolume, it will cause many fops with frame loss.
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 340 (Kernel Compilation fail in stripe)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=340
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
| |
It *should* be an error when a handshake fails. Its hard to debug
it otherwise
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 26 (Version mismatch not handled correctly)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=26
|
|
|
|
|
|
|
|
| |
Signed-off-by: Harshavardhana <harsha@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 366 (Infinite loop with centralized logging.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=366
|
|
|
|
|
|
|
|
|
|
|
| |
alloca.h should be included on a platform-specific basis.
Lets common-utils.h handle that.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 349 (FreeBSD compilation error (alloca.h).)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=349
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 315 (generation number support)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=315
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch completes the previous patch for self-heal of
open fds in replicate.
If an fd was never opened on a subvolume, we remember that
and do the open after we've done self-heal on that fd.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
|
|
|
| |
- since the lifetime of fd context can be no longer than the fd, we can use
lock in fd.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not the expected one.
- cache creation is expensive operation. Also, cache will be freed in
releasedir. Hence, just remove all entries from cache without freeing
the cache. However this is not entirely true, since sp_cache_remove_entry
frees the old table and reinitializes a new table if all entries are being
removed. When rbtree based hash table provides an interface to remove all
the entries, sp_cache_remove_entry should be modified not to destroy the
table.
- this patch also fixes a race condition wherein the cache being used in
lookup getting freed in readdir if the offset is not equal to expected
offset.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 405 (Segmentation fault in stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=405
|
|
|
|
|
|
|
|
|
|
| |
Cleaned up the self-heal interface to callers.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch brings in partial support for self-heal of open
fds. The precondition is that the fd should have been opened
successfully during the initial open() (or create()), and we
assume that protocol/client has successfully reopened the fd
when the subvolume comes back up.
It works by doing an "up/down flush" (a dummy flush transaction
to do post-op wherever necessary) and then triggering
data self-heal on the file in the post-post-op hook of the
dummy flush transaction. This ensures that any writes
that come in during self-heal will wait until self-heal completes.
The up/down flush is also done when a subvolume goes down,
so that post-op is done on all subvolumes where pre-op was done.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactored the operation of the data self-heal algorithm
as:
* open all fd's (if fd not supplied by caller)
* lock 0-0 (if lock not supplied by caller)
* fxattrop, fstat (instead of lookup)
... self heal ...
* unlock (if lock not supplied by caller)
* close (if fd not supplied by caller).
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
|
| |
Data self-heal now holds blocking locks, and instead of locking
on all subvolumes, it only locks on {data-lock-server-count} subvolumes.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
| |
self-heal
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 170 (Auto-heal fails on files that are open()-ed/mmap()-ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=170
|
|
|
|
|
|
|
|
|
|
|
| |
Set opendir_done and split_brain flags correctly
in the inode context.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 249 (Self heal of a file that does not exist on the first subvolume)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
|
|
|
|
|
|
|
|
|
|
|
| |
local->cont.opendir.checksum was being free'd both in the
self-heal completion function and self-heal unwind.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 249 (Self heal of a file that does not exist on the first subvolume)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=249
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 269 (Add a specialized STACK_UNWIND macro for each FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=269
|
|
|
|
|
|
|
|
|
|
|
| |
For ENTRY_RENAME_TRANSACTIONs, keep track separately whether the
lower_path and the higher_path have been locked, and unlock only
those which have been.
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does two things related to revalidate:
1) If a revalidate fails on any subvolume, the entire lookup
call is failed.
2) Self-heal is not triggered on a revalidate if revalidate
has failed on any subvolume.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 389 (auto-heal fails randomly and causes "Stale NFS file handle" errors)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=389
|
|
|
|
|
|
|
|
|
|
|
| |
Do comparision instead of assignment in if-condition
in posix_link.
Signed-off-by: Vikas Gorur <vikas@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 254 (storage/posix has to do inode number transformation wherever it unwinds with a stat structure)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=254
|
|
|
|
|
|
|
|
|
|
|
|
| |
- translators like io-cache, read-ahead return a zero-filled stbuf in
readv_cbk and usage of zero filled stat for cache validation is not
correct.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 376 (server-side io-cache is preventing client-side io-cache from working)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=376
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- distribute picks up the inode number from hashed subvolume. But readdir
is done from different subvolumes based on the offset. Hence there is a
possibility of inode number and device number for directories being
inconsistent between two stat calls.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 371 (rm -rf fails on stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sp_get_cache_entry.
- since we don't know the size of dentry before calling sp_get_cache_entry,
we must dynamically allocate the dentry in sp_cache_get_entry and copy the
contents from cache.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 371 (rm -rf fails on stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=371
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
readdirp_cbk.
- only the transformed inode number was being copied, leaving other fields of
stat 0.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 371 (rm -rf fails on stat-prefetch.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=371
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vinayak Hegde <vinayak@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 291 (feature enhancement of error-gen translator)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=291
|