glusterd: Fix brick op to prevent glusterd crashing

Was building payload only for node types GD_NODE_BRICK & GD_NODE_NFS.
Payload wasn't being built for nodes GD_NODE_SHD & GD_NODE_REBALANCE, which made
glusterd crash when those operations were performed.

Also fix a compile warning.

Change-Id: Id33e21c84901d4d112c54514b7f16add31aeb950
BUG: 803313
Signed-off-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.com/2946
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Shishir Gowda <shishirng@gluster.com>
afr: Corrected getxattr 'key' matching in case of clrlk cmd

- Added local->dict cleanup into afr_local_cleanup

Change-Id: Ie1b96615735a9d2a2be1757cd016dbe225aae31c
BUG: 800412
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2922
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
glusterd/mountbroker: enhance mountbroker-geo-replication.* option to take multiple volumes

Comma can be used in the value of a "mountbroker-geo-replication.*" option
with semantics as of these examples:

  option mountbroker-geo-replication.foolabel vol1,vol2,vol3:geouser

and

  option mountbroker-geo-replication.geouser vol1,vol2,vol3

will allow geouser to mount any of the volumes vol{1,2,3} with params of a
geo-rep aux mount under label foolabel, resp. geouser

Also fix memleak in parsing of this option.

Change-Id: I5311388812f503a078a52a14f2679f5ddb33b248
BUG: 765214
Signed-off-by: Csaba Henk <csaba@redhat.com>
Reviewed-on: http://review.gluster.com/2818
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
remove code that was part of hard resolution which is not needed anymore.

Change-Id: I9321745a40765eff048a656a7885f12847a0a318
BUG: 781318
Signed-off-by: krishna <ksriniva@redhat.com>
Reviewed-on: http://review.gluster.com/2830
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
dht: Rebalance status should display status from each process

Change-Id: Id128417219bdb7146253618a5f8f31ef35013894
BUG: 801322
Signed-off-by: shishir gowda <shishirng@gluster.com>
Reviewed-on: http://review.gluster.com/2942
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
core: dict allocations through mem-pool

Change-Id: I7401639060957d437808779745a1e46c3f9f4585
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 798503
Reviewed-on: http://review.gluster.com/2851
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
core: bring a cmdline option to set memory-accounting

currently this is implemented as a command line option, and not
as an easier translator option. this is because as of now, before
even the volume files are parsed, we would need memory accounting
enabled. there is scope for improving this behavior, but for now,
this approach solves the problem.

Also, this feature's major consumers are the testers who are
looking for leaks, hence option is hidden from usage output.

Change-Id: I09a5b13743ae43ff42c251989f921319e94cabe3
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 799199
Reviewed-on: http://review.gluster.com/2856
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
protocol/server: Avoid race in add/del locker, connection_cleanup

conn->ltable address keeps changing in
server_connection_cleanup every time it is called.
i.e. New ltable is created every time it is called.
Here is the race that happened:
---------------------------------------------------
thread-1                        | thread-2
add_locker is called with       |
conn->ltable. lets call the     |
ltable address lt1              |
                                | connection cleanup is called
                                | and do_lock_table_cleanup is
                                | triggered for lt1. locker
                                | lists are splice_inited under
                                | the lt1->lock
lt1 adds the locker under       |
lt1->lock (lets call this l1)   |
                                | GF_FREE(lt1) happens in
                                | do_lock_table_cleanup

The locker l1 that is added just before lt1 is freed will never
be cleared in the subsequent server_connection_cleanups as there
does not exist a reference to the locker. The stale lock remains
in the locks xlator even though the transport on which it was
issued is destroyed.

Change-Id: I0a02f16c703d1e7598b083aa1057cda9624eb3fe
BUG: 787601
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2957
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterfsd: Handle errors in response send

Change-Id: I2d0a136fdfc4c86fb89cff5565efbf4af80e1edf
BUG: 799265
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2961
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
protocol/server: add and remove the transports from the list, inside the lock

Till now for graph changes, glusterfs client used to remember the old graph
also. Hence the transport object on the server corresponding the old graph
never received disconnect. But now since the graph cleanup is happening,
transport on the server side gets disconnect for the cleaned up graph.

Server maintains, all the transports in a list. But addition of the new
transport to the list, or removal of the transport from the list is not
happening within the lock. Thus if a thread is accessing a transport
(in cases of statedump, where each transprt's information is dumped),
and the server gets a disconnect on that transport, then it leads to
segfault of the process.

To avoid it do the list (of transports) manipulation inside the lock.

Change-Id: I50e8389d5ec8f1c52b8d401ef8c8ddd262e82548
BUG: 803815
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2958
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
rpc-lib: memleak fix in rpcsvc_volume_allowed

Change-Id: Iaa6baa4a3e036b2b5c808ea5e79017fffeb80a24
BUG: 801754
Signed-off-by: Rajesh Amaravathi <rajesh@redhat.com>
Reviewed-on: http://review.gluster.com/2956
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/afr: Enable eager-lock

Eager-lock is disabled by default.
Use cluster.eager-lock on/off to change the config.
write-behind on and eager-lock off is not supported configuration.

In afr, when eager-lock is enabled the inode lock on fd is taken
using the fd address as the lk-owner. So the lock is
interchangableale between the inode-locks on the same fd.

Change-Id: I7eef1ecd510f8028f5395dee882782da53c0de3f
BUG: 802515
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2925
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
protocol/server: memory leak fixes.

Change-Id: I203832d9d52373f068f90e30dc7672329d65bbea
BUG: 803675
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2954
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cli/remove-brick: Enhance remove-brick status to display

Rebalance status now contains info from all nodes.

Signed-off-by: shishir gowda <shishirng@gluster.com>
Change-Id: I6208c9879927fb6ddc0713c1480feadcf4f3fd75
BUG: 797887
Reviewed-on: http://review.gluster.com/2949
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Change option brick-with-valgrind to run-with-valgrind

brick-with-valgrind does not make much sense because all the
glusterfs/glusterfsd server processes are run with valgrind.
So changing the option from brick-with-valgrind to
run-with-valgrind.
Also fix misspelt 'valgrnd' for valgrind log file namenames.

Change-Id: I87aad6d65ffc37d8f8679be215709a9174385ecd
BUG: 804293
Signed-off-by: Rahul C S <rahulcs@redhat.com>
Reviewed-on: http://review.gluster.com/2965
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
afr: Copy loc->gfid independent of lookup being fresh or otherwise

This change ensures that entry self-heal following a lookup on that entry
would have loc->gfid 'filled'.

Change-Id: If723c71ca43e1f062dcb99cbe5488342514dace0
BUG: 786087
Signed-off-by: Krishnan Parthasarathi <kp@gluster.com>
Reviewed-on: http://review.gluster.com/2950
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
mem-pool: more debug friendly logs by using gf_log_callingfn()

Change-Id: I4d6e53ad8660314315f2ff3aa92ffbe707d6efe9
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 803638
Reviewed-on: http://review.gluster.com/2951
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/afr: set_read_child when xactions in progress in fresh lookup

Change-Id: I33e0268635ae7a1f247b0052994e027f990083da
BUG: 800755
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2963
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Self-heald: Handle errors gracefully and show errors to users

Change-Id: I5424ebfadb5b2773ee6f7370cc2867a555aa48dd
BUG: 800352
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2962
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
mount/fuse-bridge: don't pass flags O_CREAT | O_EXCL during open as part of
fd-migration during graph-switch

Change-Id: Ia1494941d3e3d5bebdba3483b0ea7b32c9704b8c
BUG: 802710
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Reviewed-on: http://review.gluster.com/2943
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>