DHT attempts to use up the entire buffer in readdirp before unwinding in an attempt to reduce the number of calls. However, this has 2 disadvantages: 1. This can cause a stack overflow when parallel readdir is enabled. If the buffer only has a little space,rda can send back only one or two entries. If those entries are stripped out by dht_readdirp_cbk (linkto files for example) it will once again wind down to rda in an attempt to fill the buffer before unwinding to FUSE. This process can continue for several iterations, causing the stack to grow and eventually overflow, causing the process to crash. 2. If parallel readdir is disabled, dht could send readdirp calls with small buffers to the bricks, thus increasing the number of network calls. We are therefore reverting to the existing behaviour. Please note, this only mitigates the stack overflow, it does not prevent it from happening. This is still possible if a subvol has thousands of linkto files for instance. Change-Id: I291bc181c5249762d0c4fe27fa4fc2631166adf5 fixes: bz#1593548 Signed-off-by: N Balachandran <nbalacha@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.
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.
Description
Languages
C
86.6%
Shell
7.5%
Python
3.6%
Perl
0.7%
Makefile
0.4%
Other
0.9%