geo-rep: Fix no error when slave size less than master size

in df command output, default block-size is 1K, but BUFFER_SIZE is
in bytes, so verify will succeed even if slave size is less than
master size.

Added -B1 to df command(that is --block-size=1) to get all values in
bytes.

BUG: 1056518
Change-Id: I2384d2a6f2505d967e0538b95fbf111c15b26f30
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/6746
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
geo-rep: get new config value after config value reset

When config.read is called it preserves the previous values
from the the previously opened config file.

For example
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read("defaults.conf")
config.read("preferences.conf")

When change in config file is identified it will open new
instance of config to avoid getting old config values.

Change-Id: Iec677e61ebd2c59c95aea94481f569d78bd913e4
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/6747
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
gfid-access: fix the issue of entry creation with wrong gfid

* dict_set was happening with a string instead of 'uuid_t' causing
  entry creations to happen with wrong gfid

* revalidate was causing excessive ESTALE logs as lookup was
  happening on '.gfid/' path itself causing server to become clueless

Change-Id: I3b76ce7fdec9c2ff785be21f506f859f489f80f0
BUG: 1054199
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-on: http://review.gluster.org/6520
Reviewed-by: Anand Avati <avati@redhat.com>
Tested-by: Anand Avati <avati@redhat.com>
protocol: pass the size of the data in the WRITE on-wire FOP

Capturing GlusterFS traffic with tcpdump and displaying it in Wireshark
shows that the size of all WRITEs are 0 bytes. It seems that the
attribute is not used, and the size is calculated an other way.

Even if the size attribute is not used (yet), it should be set correctly
to prevent confusing while debugging network traffic with Wireshark or
other tools.

Note that the on-wire format is not being changed with this patch. The
size is already part of the structure that is exchanged between the
client and server.

Change-Id: I9d67fe17bf203672116dea4948328e2af4004677
BUG: 1057264
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6766
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vikhyat Umrao <vumrao@redhat.com>
features/compress: rename "compress" option to "network.compression"

Prevent mistaking the "compress" options for storage (at rest)
compression. The cdc-xlator is implemented to support compressing of
network traffic (READ and WRITE FOPs).

URL: http://www.gluster.org/community/documentation/index.php/Features/On-Wire_Compression_+_Decompression
Change-Id: I9fedf4106dcb226d135ab92e4b533aff284881d7
BUG: 1053670
CC: Venky Shankar <vshankar@redhat.com>
CC: Prashanth Pai <ppai@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6765
Reviewed-by: Prashanth Pai <ppai@redhat.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cluster/stripe: Remove redundant code blocks

This appears to have been a cut&paste error.  The same set of 12 lines
was repeated three times, causing a pointer to allocated memory to be
overwritten twice resulting in a memory leak.

This patch removes the redundant code.

BUG: 789278
CID: 1128915

Change-Id: I3e4a3703b389c00e2a4e99e0a7368c5a3dda74d0
Signed-off-by: Christopher R. Hertel <crh@redhat.com>
Reviewed-on: http://review.gluster.org/6769
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cluster/dht: goto statements may cause loop exit before memory is freed.

Memory is allocated at the top of the while loop via a call to
gf_strdup(), but there are several goto calls that exit the loop, and
the memory is not freed before each of those calls to goto.  This fix
moves the final call to GF_FREE() higher in the loop so that the memory
is correctly freed.

Two variables, dup_str and str_tmp1, point to portions of the allocated
memory.  Neither are used past the final call to GF_FREE( dup_str ).

BUG: 789278
CID: 1124780

Change-Id: Id24b80cdbfd8b8855c80fffec63d7fce98cbed4a
Signed-off-by: Christopher R. Hertel <crh@redhat.com>
Reviewed-on: http://review.gluster.org/6771
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
libgfapi: Fix pointer dereference before NULL check

Call to dict_keys_join dereferences xattr before it is checked
for NULL. Restructured the function to check for NULL earlier and
call dict_unref only when needed.

BUG: 789278
CID: 1124826

Change-Id: I732fa304ad6f3b921c589832d13f73bbd36f589c
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
Reviewed-on: http://review.gluster.org/6763
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
cli: Add options to the CLI that let the user control the reset of
stats

"volume profile info" automatically clears incremental stats. There
isn't a command to:
- fetch stats without clearing incremental stats and
- clear cumulative and incremental stats

This change introduces two arguments (i.e. peek and clear). 'clear'
will wipe both incremental and cumulative stats. 'peek' fetches stats
without wiping incremental stats.

'volume profile info peek' - fetches incremental and cumulative stats
                             without wiping incremental stats

'volume profile info incremental peek' - fetches incremental stats
                                     without wiping incremental stats

'volume profile info clear' - clears both incremental and cumultiave
                              stats

Change-Id: I91834515ad672eca5f882809941147d7d997c4c9
BUG: 1047416
Signed-off-by: Dawit Alemu <dalemu@redhat.com>
Reviewed-on: http://review.gluster.org/6620
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
features/quota: use STACK_WIND_TAIL when quota is turned off.

Change-Id: I8a0b7f3a1995a72560c210efbad1eaafb0bdf329
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: http://review.gluster.org/6373
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
libgfapi: Fix pointer dereference before NULL check

ctx is not checked for NULL before it is dereferenced, though the
check in "err" seems to suggest we should guard against it.

BUG: 789278
CID: 1124827

Change-Id: I6ed0b42992af5f370cce9aa2feb56811cdd54b42
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
Reviewed-on: http://review.gluster.org/6782
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
libgfapi: Remove useless call to lstat

There's no need to lstat cmd_args->volfile, since we already
check to see if fopen fails. The error message was largely the
same.

BUG: 789278
CID: 1124869

Change-Id: I10827154b32c72d2e4a1ab0d3c1e464f8af6ffee
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
Reviewed-on: http://review.gluster.org/6783
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
mgmt: Fix memory leak of brickid from gf_asprintf.

No GF_FREE, so one was put into the return path with proper checking.

Change-Id: Idde2803608409dcbf216062f83b7f4493946ba70
CID: 1124718
BUG: 789278
Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-on: http://review.gluster.org/6755
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: Free leaked error message.

The way the previous code was written you couldn't tell if the string was
from the data area, or allocated, so we switched how the error message
is printed, and now free unconditionally.

Change-Id: Ia83cf9893acdfb5d537a61cc0bbf4aa7689e483d
CID: 1124704
BUG: 789278
Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-on: http://review.gluster.org/6779
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
nfs/server: Logic error in mount tab handling.

This error likely causes a double free and also a memory leak.

Change-Id: I299209a8b5bf8aaf487e52e9a4f00948e1d40eb5
CID: 1124703
BUG: 789278
Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-on: http://review.gluster.org/6778
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
cluster/dht: set op_errno correctly during migration.

Change-Id: I65acedf92c1003975a584a2ac54527e9a2a1e52f
BUG: 1010241
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: http://review.gluster.org/6219
Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
glusterd: Free op_errstr before it goes out of scope.

Also removed the NULL check on path_list, as it shouldn't be needed.

Change-Id: I5b655f7b383f301afa8fc1c1c09b31e2afe47f0f
CID: 1138527
BUG: 789278
Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-on: http://review.gluster.org/6784
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
tests: support regex in EXPECT constructs

Instead of just strings, provide the ability to specify a regex
of the pattern to expect

Change-Id: I6ada978197dceecc28490a2a40de73a04ab9abcd
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/6788
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
features/quota: remove in-memory accounting of files in enforcer

Accounting was done in enforcer (though marker is the ultimate source
of truth) to offset cached directory size becoming stale. However,
with enforcer being moved to brick we can no longer maintain correct
cluster wide size for a directory. Hence removing accounting code from
enforcer.

Change-Id: I5ea94234da4da85ed5f5ced1354d8de3454b3fcb
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: http://review.gluster.org/6434
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
features/quota: maintain correct link_count in ancestry building
codepath.

Ancestry building codepath can be executed simultaneously when a file
has hardlinks. So, following fixes are needed:

* modify local->link_count under locks in ancestry building codepath.
* before invoking check_limit on newly constructed parents,
  link_count should not be set, but instead incremented by as many
  number of new invocations of check_limit.
* decrementing link_count and the check whether the count has hit zero
  to resume the waiting call_stub should be atomic.

Change-Id: I6f52e50547362a5ded6bd9f085570223aea372d1
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: http://review.gluster.org/6491
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>