| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
glusterfs relies on Linux uuid implementation, which
API is incompatible with most other systems's uuid. As
a result, libglusterfs has to embed contrib/uuid,
which is the Linux implementation, on non Linux systems.
This implementation is incompatible with systtem's
built in, but the symbols have the same names.
Usually this is not a problem because when we link
with -lglusterfs, libc's symbols are trumped. However
there is a problem when a program not linked with
-lglusterfs will dlopen() glusterfs component. In
such a case, libc's uuid implementation is already
loaded in the calling program, and it will be used
instead of libglusterfs's implementation, causing
crashes.
A possible workaround is to use pre-load libglusterfs
in the calling program (using LD_PRELOAD on NetBSD for
instance), but such a mechanism is not portable, nor
is it flexible. A much better approach is to rename
libglusterfs's uuid_* functions to gf_uuid_* to avoid
any possible conflict. This is what this change attempts.
BUG: 1206587
Change-Id: I9ccd3e13afed1c7fc18508e92c7beb0f5d49f31a
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/10017
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In brick statedump file the barriered fop's gfid was showing 0 when
statedump was taken. This is because of statedump code was not
referring to correct gfid.
With this change statedump code will use correct gfid and gfid will
not be 0 in statedump file when barrier is enable and user takes
statedump of volume.
Change-Id: Ia296cba7e132402df53c602daa160c1c2cd21245
BUG: 1099369
Reviewed-on: http://review.gluster.org/7893
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduces configurable 'changelog-barrier-timeout'
in changelog. The default changelog-barrier-timeout is set to
120 sec which is same as barrier-timeout of barrier translator.
On this timeout, all the barriered fops are unbarriered. It is
safe to have this internal timeout for changelog barrier to
prevent it from indefinite barrierring of fops if barrier
disable notification does not come from snapshot for some
reason.
Change-Id: Iad07807935f88222cdefcd46312b4b6579186dce
BUG: 1094226
Signed-off-by: Kotresh H R <khiremat@redhat.com>
Reviewed-on: http://review.gluster.org/7669
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Tested-by: Venky Shankar <vshankar@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In barrier notify function, if we fail to set the barrier option execution goes
to default_notify which returns 0 and command returns success.
Fix : We need not call the default_notify function when handling
GF_EVENT_TRANSLATOR_OP in barrier xlator's notify.
Change-Id: Ia2c361b43cca7791c29829d69dcd6fc7923102f6
BUG: 1092841
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/7609
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Sachin Pandit <spandit@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
barrier_fsync was not getting hit when fsync call is issued from the
application over NFS mount.
Investigation reveals that NFS doesn't send an explicit fsync call to the
glusterfs server, however NFS converts it with a stable write with O_DSYNC
flag, so for a fsync call over NFS mount point, barrier feature always
needs to check for writev and its correspoding flags. So to meet all the
coditions of write with O_SYNC and fsync getting blocked when barrier is
enabled the check has been modified with following:
if (!((flags | fd->flags) & (O_SYNC | O_DSYNC)))
Point to be noted here is we need to check both fd's flag and the explicit
flag as for NFS write fd->flags is 0.
Bug ID : 1091902
Change-Id: Ifd5377fca2cc93bb72158dd525b2aab8b4164ca8
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/7633
Reviewed-by: Santosh Pradhan <spradhan@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
barrier_writev function was doing the following check to determine whether its a
O_SYNC write or not:
if (!(flags & O_SYNC))
The problem here is this flag is not fd's flag and gfapi write does not copy
open call fd's flag into write flag because of which O_SYNC writes were not
getting barriered even if barrier was enabled.
The check has been modified as:
if (!(fd->flags & (O_SYNC | O_DSYNC)))
Change-Id: I07b23852d150b81c7317100ca6d22d082ad897cd
BUG: 1090488
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/7549
Reviewed-by: Varun Shastry <vshastry@redhat.com>
Reviewed-by: Santosh Pradhan <spradhan@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
barrier enable/disable, barrier-timeout configuration in barrier translator.
Change-Id: I7cbf9cd4f5e55d42dcc6b7cd6827234566c7b6f3
BUG: 1060002
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/7177
Reviewed-by: Kaushal M <kaushal@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem : Reconfiguration of barrier timeout through gluster volume set shows a
success but it never changes the default timeout value which is 120 seconds.
After digging into the code deeper, it was found that timeout is never modified
in reconfigure() as the first check i.e. whether barrier is already enabled or
disabled always fails since barrier option is not modified in this request.
Fix : Introduced notify() in barrier translator which will take care of the rpc
request to enable/disable barrier. reconfigure() will simply set barrier
enable/disable and timeout options blindly without any validation.
Please note this patch only contains the changes in barrier translator however
from complete code flow perspective the caller in the glusterfsd mgmt should
call notify instead of reconfigure to fix this problem.
Change-Id: I1371b294935f6054da7c1dc6a9a19f1d861e60fb
BUG: 1085671
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/7428
Reviewed-by: Varun Shastry <vshastry@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds statedump support for barrier. This currently dumps
barrier xlators private information and the queue of barriered fops.
Change-Id: I273eb6e676db02c40c363feeff58a79737dc041e
BUG: 1060002
Reviewed-on: http://review.gluster.org/7136
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|
|
gluster feature page:
http://www.gluster.org/community/documentation/index.php/Features/Server-side_Barrier_feature
Change-Id: Ia9f8802a54d1ffbd1cf789b80f5d30819bf65f64
BUG: 1060002
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/6928
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|