Problem: Geo-rep fails to sync the rename properly if destination exists. It results in source to be remained on slave causing more number of files on slave. Also heavy rename workload like logrotate caused lot of ESTALE errors Cause: Geo-rep fails to sync rename if destination exists if creation of source file also falls into single batch of changelogs being processed. This is because, after fixing problematic gfids verifying from master, while re-processing original entries, CREATE also was re-processed causing more files on slave and rename to be failed. Solution: Entries need to be removed from retrial list after fixing problematic gfids on slave so that it's not re-created again on slave. Also treat ESTALE as EEXIST so that the error is properly handled verifying the op on master volume. Backport of: > Patch: https://review.gluster.org/22519/ > Change-Id: I50cf289e06b997adddff0552bf2466d9201dd1f9 > BUG: 1694820 > Signed-off-by: Kotresh HR <khiremat@redhat.com> > Signed-off-by: Sunny Kumar <sunkumar@redhat.com> Change-Id: I50cf289e06b997adddff0552bf2466d9201dd1f9 fixes: bz#1709734 Signed-off-by: Kotresh HR <khiremat@redhat.com>
Gluster
Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.
Development
Contributions to gluster in the form of patches and new feature additions can be made by following steps outlined at Developers Guide.
Documentation
The Gluster documentation can be found at Gluster Docs.
Deployment
Quick instructions to build and install can be found in INSTALL file.
Testing
GlusterFS source contains some functional tests under tests/
directory. All
these tests are run against every patch submitted for review. If you want your
patch to be tested, please add a .t
test file as part of your patch submission.
You can also submit a patch to only add a .t
file for the test case you are
aware of.
To run these tests, on your test-machine, just run ./run-tests.sh
. Don't run
this on a machine where you have 'production' glusterfs is running, as it would
blindly kill all gluster processes in each runs.
If you are sending a patch, and want to validate one or few specific tests, then run a single test by running the below command.
bash# /bin/bash ${path_to_gluster}/tests/basic/rpc-coverage.t
You can also use prove
tool if available in your machine, as follows.
bash# prove -vmfe '/bin/bash' ${path_to_gluster}/tests/basic/rpc-coverage.t
Maintainers
The list of Gluster maintainers is available in MAINTAINERS file.
License
Gluster is dual licensed under GPLV2 and LGPLV3+.
Please visit the Gluster Home Page to find out more about Gluster.