| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Ran posix compliance test and sanity test
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 329 (Replacing memory allocation functions with mem-type functions)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=329
|
|
|
|
|
|
|
|
| |
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1031 (dict_unserialize crash if undersized buffers passed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The existing interface required the transport to separate the procedure
header and procedure payload into two different buffers. Making this
separation can prove cumbersome for transports like rdma wherein the header
and payload can be received in a single buffer (For eg., header and payload
of write fop sent as inline msg using rdma-send). This patch delegates the
responsiblity of separating out header and payload to programs.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1223 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1223
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1279 (Buffer overflow build error)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1279
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1753 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1753
|
|
|
|
|
|
|
|
|
|
|
|
| |
gluster volume defrag <volname> hang is being fixed. Also, if a invalid
volname was specified, it used to create mount point and call gluster
client mount on it. This is also being fixed
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1247 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1247
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1227 (memory leak in rpcsvc_conn_alloc)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1227
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1264 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1264
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1065 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1065
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1067 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1067
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1066 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1066
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1068 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1068
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1070 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1070
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1106 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1106
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1090 (clang errors in the file features/locks/posix.c)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1090
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1107 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1107
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1105 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1105
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1108 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1108
|
|
|
|
|
|
|
|
| |
Signed-off-by: Sachidananda Urs <sac@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1110 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1110
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1246 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1246
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resending Avati's syncop patch with a few bug fixes.
(please do not skip the IMPORTANT NOTES section)
* Framework for SYNChronous OPerations
--------------------------------------
This patch provides a framework for performing synchronous operations
over the underlying actual asynchronous GlusterFS FOPS.
* Use cases
-----------
1. Convenient implementation of crawler thread in replicate/pump
2. Convenient implementation of high level control flow in DVM
* Background
------------
All (almost) threads in GlusterFS are hosts for executing aysnchronous
file operations using the STACK_WIND and STACK_UNWIND primitives - as calls
and callbacks.
While the STACK_WIND and STACK_UNWIND macros provide high control for
efficiently implementing file operations in a clustered/parallel environment,
there are tasks where the nature of the task itself is sequential and
the execution performance of the task is not critical. In these cases the
complexity to implement the task with STACK_WIND/STACK_UNWIND based operations
as calls and callbacks is an overkill.
* Introduction
---------------
syncop: are wrappers around the STACK_WIND/STACK_UNWIND based asynchronous fops.
synctask: a sequential task (a C function) which uses syncops.
syncenv: an environement to schedule and execute synctasks.
The synchronicity is implemented via ucontext.h based continuations.
Execution of synchronous tasks is possible only in a synchronous environment.
Therefore, the first step is to create such an environment -
struct syncenv *env = syncenv_new (0);
This creates a synchronous environment, with a thread (scheduler) to host the
synchronous tasks. Creation of this environment is generally to be done at the
time of process initialization. Next is to spawn a synchronous task in this
environment -
int slow_self_heal (void *data);
int completion_func (int ret, void *data);
ret = synctask_new (env, slow_self_heal, completion_func, data);
Here slow_self_heal is a task which is implemented using synchronous operations.
When slow_self_heal() completes, completion_func() is called with the first
parameter as the return value of slow_self_heal(). Both these functions get
the @data argument as the same value passed to synctask_new().
int
slow_self_heal (void *data)
{
xlator_t *child = FIRST_CHILD (THIS);
fd_t *dir = NULL;
...
dir = syncop_opendir (child, loc);
entry = syncop_readdir (dir);
...
return ret;
}
* IMPORTANT NOTES
-----------------
- calling syncops in code executing outside the synchronous environment will
very likely cause and undesired blocking of the executing thread leading to
deadlocks!!
The synchronous environment is a special thread where such sleeps are safe,
and these sleeps result in the scheduler to 'swap in' other synctasks.
- syncops can put the task to sleep. DO NOT issue syncops while holding mutexes.
This is very similar to the blunder of holding a mutex and doing STACK_WIND.
- It works best when synctasks use only syncops. If a call_frame is created and
STACK_WIND'ed, the callback would very likely happen in a thread outside the
synchronous enviroment, at an undefined time - as expected. So note that the
synchronous environment does not tame the notorious behaviour of STACK_WIND.
Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 974 (Spurious self-heal?)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=974
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1239 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1239
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- use mem-pool for requests and saved_frames.
- preserve the rpc_req structure till rpc invokes program's reply.
This will enable us to store transport specific data that has to
last till reply has come (eg., memory regions of chunk lists in
case of rdma).
- change signature of rpc_clnt_submit to accept rsphdr_vector and
rsppayload_vector. The buffers pointed by these vectors will be
from iobufs and these iobufs are added to an iobref which should
also be passed as an arguement to rpc_clnt_submit.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1239 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1239
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1092 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1092
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
|
|
|
|
|
|
|
|
|
|
|
| |
handles some NULL dereference problems
(reported by clang when ran with code where '#define GF_CALLOC NULL').
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1133 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1133
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suppose a file name 1 is created and some data is written to it. After this
another 512 files are newly created and written to. When the the 513th file is
created and an fd_t opened for it, it results in 1's fd_t being replaced in the
fd-lru with 513th file's fd_t. This is the correct behaviour resulting in all
refs getting unref from the fd_t of 1 and the fd and all related state being
freed.
But, in some workloads, some refs are still pending even after the fd_t is
removed from LRU, resulting in the fd still being bound to the inode. In
nfs3svc_remove_cbk, while removing the inode state, we also ensure that any
fd_ts in the cache for this inode are also removed. While removing the fd_t,
this situation where the fd_t has replaced with another, even while a ref
remains on the fd_t, results in a crash in the fdcache_remove path in
nfs3svc_remove_cbk. This happens because the fd_ctx_get results in a NULL value
because the ctx was already deleted when this fd_t was removed from fd-lru
earlier. This patch fixes the crash by introducing a NULL check.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 885 ([NFS Xlator] Crash in nfs3_fdcache_update)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=885
|
|
|
|
|
|
|
|
| |
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1167 (gnfs crash with fio)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1167
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A race is seen during a compilebench load against NFS where a NFSv3 MKDIR is
immediately followed by a LOOKUP on the new directory. By the time this lookup
comes in, the setxattr issued by distribute for the mkdir has not returned yet
from all the replicas. Since replicate returns a reply for setxattr after
receiving reply only from one subvol, the MKDIR is unwound from distribute.
When the LOOKUP is received at distribute, the setxattr has still not completed
at the second replica, whereas that is where the lookup is sent by replicate.
Finding that the xattr is missing from the dir, distribute returns ESTALE to
NFS, which return NFS3ERR_STALE to nfs client.
This patch changes replicate setxattr behaviour by forcing replicate to wait for all
children rather than one to call back before unwinding the stack.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 937 (compilebench fails on NFS+dist+repl+all perf xlators)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=937
|
|
|
|
|
|
|
|
| |
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
|
|
|
|
|
|
|
|
|
|
|
|
| |
During hard fh resolution, if a directory traversal goes right
through to end-of-dir without finding a hash match, we need to return
an ESTALE, not ENOENT.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
|
|
|
|
|
|
|
|
| |
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1205 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1205
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1220 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1220
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1220 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1220
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1037 (selfheal information in normal logging mode)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1037
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1228 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1228
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the there is an socket or ib error, fail the ping request
to prevent retries. Which would cause active connections
to be disconnected
Signed-off-by: shishir gowda <shishirng@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 907 (cancel ping timer in case of socket fd error or iberror)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=907
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1205 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1205
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1187 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1187
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* create(filename@<distribute-volume-name>-<subvol-name>), will
create the file in corresponding subvol of dht.
* same for unlink()
same logic can be extended to other fops if there is a need
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1200 (enhance distribute with hooks so lot of debugging can be done online)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1200
|
|
|
|
|
|
|
|
| |
Signed-off-by: Anush Shetty <anush@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1218 (Crash in client_fdctx_destroy)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1218
|
|
|
|
|
|
|
|
| |
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1217 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1217
|
|
|
|
|
|
|
|
| |
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 904 (Error while self-healing directories)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=904
|
|
|
|
|
|
|
|
| |
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1187 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1187
|
|
|
|
|
|
|
|
| |
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1208 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1208
|