Description of problem: glusterfsd creates pthread keys for different purposes such as storing THIS, lkowner etc, while coming up. So does gfapi. But when gfapi is used within glusterfs itself (example snapshot daemon in user serviceable snapshots) the keys are created again, whenever a new gfapi instance is created. This might lead to the situation of process running out of pthread keys. So, the pthread keys should be created only once. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
REVIEW: http://review.gluster.org/9430 (libglusterfs: Avoid initializing per process globals more than once.) posted (#6) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9469 (uss: disable memory accounting for the snapshot daemon) posted (#1) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9430 (libglusterfs: Avoid initializing per process globals more than once.) posted (#7) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9469 (uss: disable memory accounting for the snapshot daemon) posted (#2) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9430 (libglusterfs: Avoid initializing per process globals more than once.) posted (#8) for review on master by Avra Sengupta (asengupt)
REVIEW: http://review.gluster.org/9469 (uss: disable memory accounting for the snapshot daemon) posted (#3) for review on master by Avra Sengupta (asengupt)
COMMIT: http://review.gluster.org/9469 committed in master by Vijay Bellur (vbellur) ------ commit c8a6904396142b832ec31c37f43f44b139d24e1f Author: Raghavendra Bhat <raghavendra> Date: Tue Jan 20 17:57:22 2015 +0530 uss: disable memory accounting for the snapshot daemon * Bring in option to disable memory accounting for a glusterfs process This reverses the changes done by the commit 7fba3a88f1ced610eca0c23516a1e720d75160cd. * Change the key from "memory-accounting" to "no-memory-accounting", as by default all the glusterfs process enable memory accounting now. So to disable memory accounting for some process, "no-mem-accounting" argument has to be passed. Change-Id: I39c7cefb0fe764ea3e48f4e73e1305b084c5f497 BUG: 1184366 Signed-off-by: Raghavendra Bhat <raghavendra> Reviewed-on: http://review.gluster.org/9469 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9430 committed in master by Vijay Bellur (vbellur) ------ commit 88136b53f59e3b81aacc28df18bda575da35b02d Author: Vijay Bellur <vbellur> Date: Sun Jan 11 23:13:08 2015 +0530 libglusterfs: Avoid initializing per process globals more than once. gfapi consumers can invoke glusters_globals_init() multiple times through glfs_new(). This will result in re-initialization of already inited variables and non deterministic behavior. To avoid this, a new function gf_globals_init_once() has been added. The invocation of this function is guarded through pthread_once(), thereby ensuring single initialization of per process globals. Change-Id: I0ecde02ee49e0c7379c2eb0f1c879d89774ec82f BUG: 1184366 Signed-off-by: Vijay Bellur <vbellur> Signed-off-by: Raghavendra Bhat <raghavendra> Reviewed-on: http://review.gluster.org/9430 Tested-by: Gluster Build System <jenkins.com>
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.7.0, please open a new bug report. glusterfs-3.7.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10939 [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user