Go to file
Pranith Kumar K 7ec3a8527f cluster/afr: Remove local from owners_list on failure of lock-acquisition
When eager-lock lock acquisition fails because of say network failures, the
local is not being removed from owners_list, this leads to accumulation of
waiting frames and the application will hang because the waiting frames are
under the assumption that another transaction is in the process of acquiring
lock because owner-list is not empty. Handled this case as well in this patch.
Added asserts to make it easier to find these problems in future.

fixes bz#1699731
Change-Id: I3101393265e9827755725b1f2d94a93d8709e923
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
2019-04-16 11:29:03 +00:00
.github doc: describe how to contribute when a GitHub Pull-Request is made 2018-01-30 15:05:55 +00:00
api gfapi: Unblock epoll thread for upcall processing 2019-04-03 04:30:53 +00:00
build-aux checkpatch.pl: fix the perl warning 2018-07-06 08:12:56 +00:00
cli socket: socket event handlers now return void 2019-03-02 11:54:24 +00:00
contrib timer-wheel: run the timer function outside of locked region 2019-01-09 02:53:27 +00:00
doc doc: Final version of release-6 release notes 2019-03-19 10:17:57 -04:00
events eventsapi: Fix error while handling GlusterCmdException 2019-03-12 20:53:37 +00:00
extras rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
geo-replication geo-rep: Fix syncing multiple rename of symlink 2019-04-03 04:31:06 +00:00
glusterfsd core: Log level changes do not effect on running client process 2019-04-16 10:59:36 +00:00
heal afr: add client-pid to all gf_event() calls 2019-04-16 10:48:40 +00:00
libglusterfs core: Log level changes do not effect on running client process 2019-04-16 10:59:36 +00:00
rpc rpclib: slow floating point math and libm 2019-04-16 10:48:06 +00:00
tests cluster/afr: Remove local from owners_list on failure of lock-acquisition 2019-04-16 11:29:03 +00:00
tools glusterfind: revert shebangs to #!/usr/bin/python3 2019-03-02 11:54:35 +00:00
xlators cluster/afr: Remove local from owners_list on failure of lock-acquisition 2019-04-16 11:29:03 +00:00
.clang-format clang-format: add the config file 2018-09-12 11:48:34 +00:00
.gitignore clang-format: add the config file 2018-09-12 11:48:34 +00:00
.mailmap mailmap: add mailmap entry for potatogim 2017-11-16 15:43:24 +00:00
.testignore logrotate: utilize the new 'maxsize' option 2018-09-19 03:29:59 +00:00
AUTHORS cleaned up some outdated files 2010-03-12 04:09:34 -08:00
autogen.sh configure.ac: fix option to stop automake aborting on pointless error 2018-12-04 12:06:50 -05:00
ChangeLog Fixed build problems for init script installation. 2009-03-09 17:45:56 +05:30
COMMITMENT add COMMITMENT file as part of GPL cure 2018-05-25 08:40:13 +00:00
configure.ac rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
CONTRIBUTING rfc.sh: set 'Change-Id: ' header on first run 2012-08-15 10:39:43 -07:00
COPYING-GPLV2 license: dual license under GPLV2 and LGPLV3+ 2012-05-10 22:06:16 -07:00
COPYING-LGPLV3 license: dual license under GPLV2 and LGPLV3+ 2012-05-10 22:06:16 -07:00
glusterfs-api.pc.in copy_file_range support in GlusterFS 2018-12-12 15:56:55 +00:00
glusterfs.spec.in rpm: add thin-arbiter package 2019-03-13 01:48:26 +00:00
INSTALL Use the new URL for the docs 2017-09-07 11:42:08 +00:00
libgfchangelog.pc.in copy_file_range support in GlusterFS 2018-12-12 15:56:55 +00:00
libgfdb.pc.in *.pc: Fix include path in Cflags 2017-11-08 11:10:44 +00:00
MAINTAINERS glupy: remove from the build 2018-11-08 02:46:48 +00:00
Makefile.am tiering: remove the translator from build and glusterd 2018-11-02 02:39:35 +00:00
NEWS news: note the move to gerrit 2011-07-18 17:24:14 +05:30
README.md README: add a section for giving hints on testing 2018-10-11 05:10:54 +00:00
rfc.sh Update rfc.sh for release-6 2019-02-05 19:59:13 -05:00
run-tests-in-vagrant.sh tests/vagrant: install additional dependencies 2018-06-19 11:50:28 +00:00
run-tests.sh tests: run nfs tests only if --enable-gnfs is provided 2019-01-24 15:18:00 +00:00
site.h.in core: add some examples of site.h usage 2018-01-30 03:51:57 +00:00
submit-for-review.sh rfc.sh: provide a unified way to update bugs or github issues ID 2018-03-22 15:01:38 +00:00
THANKS Typo fix THANKS message 2014-09-16 02:30:36 -07:00

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.