+++ This bug was initially created as a clone of Bug #1722802 +++ +++ This bug was initially created as a clone of Bug #1722801 +++ Description of problem: The method used to calculate the power of two value for a type is off by 1 causing twice the required amount of memory to be allocated. For example, cComparing the information for inode_t in statedumps from 3.4.4 and 3.5.0: 3.4.4: ------ pool-name=inode_t active-count=15408 sizeof-type=168 padded-sizeof=256 size=3944448 shared-pool=0x7fac27a7b468 -----=----- 3.5.0: ------ pool-name=inode_t active-count=2 sizeof-type=255 <--- actual sizeof inode_t is 168 padded-sizeof=512 <--- padded size is twice the required amount size=1024 shared-pool=0x7f1103b5b6d0 Version-Release number of selected component (if applicable): 3.5.0 How reproducible: Steps to Reproduce: 1. Create volume, fuse mount it and create some files and dirs on it 2. Take a statedump of the gluster mount process (kill -SIGUSR1 <pid>) 3. Compare the sizeof-type and padded-sizeof values in the state releases. Actual results: The padded-sizeof is twice the smallest power of two value for sizeof-type + sizeof(obj header) Expected results: The padded-sizeof should be the smallest power of two value for sizeof-type + sizeof(obj header) Additional info:
REVIEW: https://review.gluster.org/22951 (mem-pool: remove dead code.) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22952 (core: fix hang issue in __gf_free) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22953 (core: avoid dynamic TLS allocation when possible) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22954 (mem-pool.{c|h}: minor changes) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22955 (libglusterfs: Fix compilation when --disable-mempool is used) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22956 (core: fix memory allocation issues) posted (#1) for review on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22951 (mem-pool: remove dead code.) merged (#2) on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22952 (core: fix hang issue in __gf_free) merged (#2) on release-6 by Xavi Hernandez
REVIEW: https://review.gluster.org/22953 (core: avoid dynamic TLS allocation when possible) merged (#3) on release-6 by hari gowtham
REVIEW: https://review.gluster.org/22954 (mem-pool.{c|h}: minor changes) merged (#3) on release-6 by hari gowtham
REVIEW: https://review.gluster.org/22955 (libglusterfs: Fix compilation when --disable-mempool is used) merged (#3) on release-6 by hari gowtham
REVIEW: https://review.gluster.org/22956 (core: fix memory allocation issues) merged (#3) on release-6 by hari gowtham