Bug 799852 - graph reconstruction needs to be enhanced
Summary: graph reconstruction needs to be enhanced
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: GlusterFS
Classification: Community
Component: core
Version: pre-release
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: ---
Assignee: Kaushal
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-03-05 09:04 UTC by Pranith Kumar K
Modified: 2012-06-06 07:54 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-06-06 07:54:37 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Pranith Kumar K 2012-03-05 09:04:27 UTC
Description of problem:
The glusterfsd code does not handle volfiles greater than 128KB gracefully. This needs to be improved. Nfs, glustershd processes are per machine processes and hold the graphs of all the volumes present in the machine. They can cross the 128KB limit on the volfile.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Kaushal 2012-06-06 07:54:37 UTC
This has been solved by the introduction of variable sized iobufs.

The volfiles required by glusterfsd, when given the volfile server and id, are obtained by the getspec mechanism, which uses some rpc calls and xdr data structs. 

The memory required for the xdr structures used in rpc is allocated using iobufs. Earlier the iobuf size was limited to 128KB which would cause problems when volfiles were greater than 128KB. Since, iobuf of required size couldn't be allocated, the submission of the rpc reply would fail on glusterd, leading to failure of getspec on the client.

The usage of variable sized iobufs allows iobufs of size upto 1MB via predefined iobuf arenas and also allows creation of new arenas of greater size when required. This will allow volfiles of larger than 128KB size to be transferred during getspec successfully and be processed properly.


Note You need to log in before you can comment on or make changes to this bug.