diff options
author | Niels de Vos <ndevos@redhat.com> | 2017-07-30 09:13:29 +0200 |
---|---|---|
committer | Shyamsundar Ranganathan <srangana@redhat.com> | 2017-07-31 16:32:13 +0000 |
commit | c2742e4dd118e416fbd7fdf865350a5a3c92490c (patch) | |
tree | 4551f669fdaa66c878f346c0de68509772cad9b0 /libglusterfs/src/call-stub.c | |
parent | 332d553cb8eba208fe421723b64f8c19b43fd696 (diff) |
mem-pool: track and verify initialization state
It is possible that pthread_getspecific() returns a non-NULL value in
case the pthread_key_t is not initialized. The behaviour for
pthread_getspecific() is not defined in this case. This can happen when
applications use mem-pools from libglusterfs.so, but did not call
mem_pools_init_early().
By tracking the status of the mem-pools initialization, it is now
possible to prevent calling pthread_getspecific() in case the
pthread_key_t is not initialized. In future, we might want to exend this
more to faciliate debugging.
Cherry picked from commit b5fa5ae05f73e03023db37e43fb203267b719160)
> Reported-by: Kotresh HR <khiremat@redhat.com>
> Tested-by: Jiffin Tony Thottan <jthottan@redhat.com>
> Change-Id: I6255419fe05792dc78b1eaff55bc008fc5ff3933
> Fixes: 1e8e62640 ("mem-pool: initialize pthread_key_t pool_key in mem_pool_init_early()")
> BUG: 1475255
> Signed-off-by: Niels de Vos <ndevos@redhat.com>
> Reviewed-on: https://review.gluster.org/17899
> Smoke: Gluster Build System <jenkins@build.gluster.org>
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
> Reviewed-by: jiffin tony Thottan <jthottan@redhat.com>
> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
Change-Id: I6255419fe05792dc78b1eaff55bc008fc5ff3933
BUG: 1475258
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: https://review.gluster.org/17915
Smoke: Gluster Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
Diffstat (limited to 'libglusterfs/src/call-stub.c')
0 files changed, 0 insertions, 0 deletions