[Bugs] [Bug 1192075] New: libgfapi clients hang if glfs_fini is called before glfs_init
bugzilla at redhat.com
bugzilla at redhat.com
Thu Feb 12 15:19:54 UTC 2015
https://bugzilla.redhat.com/show_bug.cgi?id=1192075
Bug ID: 1192075
Summary: libgfapi clients hang if glfs_fini is called before
glfs_init
Product: GlusterFS
Version: 3.5.3
Component: libgfapi
Keywords: Patch, Triaged
Severity: high
Assignee: bugs at gluster.org
Reporter: ndevos at redhat.com
QA Contact: sdharane at redhat.com
CC: bharata.rao at gmail.com, bugs at gluster.org,
dshetty at redhat.com, gluster-bugs at redhat.com,
pgurusid at redhat.com, sdharane at redhat.com
Depends On: 1091335
Blocks: 1141158 (glusterfs-3.5.4)
External Bug ID: Launchpad 1308542
External Bug ID: Launchpad 1308542
+++ This bug was initially created as a clone of Bug #1091335 +++
+++ +++
+++ Use this bug to backport the fix to release-3.5. +++
Description of problem:
(Taken from
http://lists.gnu.org/archive/html/gluster-devel/2014-04/msg00179.html)
Hi,
In QEMU, we initialize gfapi in the following manner:
********************
glfs = glfs_new();
if (!glfs)
goto out;
if (glfs_set_volfile_server() < 0)
goto out;
if (glfs_set_logging() < 0)
goto out;
if (glfs_init(glfs))
goto out;
...
out:
if (glfs)
glfs_fini(glfs)
*********************
Now if either glfs_set_volfile_server() or glfs_set_logging() fails, we end up
doing glfs_fini() which eventually hangs in glfs_lock().
#0 0x00007ffff554a595 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007ffff79d312e in glfs_lock (fs=0x555556331310) at glfs-internal.h:176
#2 0x00007ffff79d5291 in glfs_active_subvol (fs=0x555556331310) at
glfs-resolve.c:811
#3 0x00007ffff79c9f23 in glfs_fini (fs=0x555556331310) at glfs.c:753
Note that we haven't done glfs_init() in this failure case.
- Is this failure expected ? If so, what is the recommended way of releasing
the glfs object ?
- Does glfs_fini() depend on glfs_init() to have worked successfully ?
- Since QEMU-GlusterFS driver was developed when libgfapi was very new, can
gluster developers take a look at the order of the glfs_* calls we are making
in QEMU and suggest any changes, improvements or additions now given that
libgfapi has seen a lot of development ?
Regards,
Bharata.
Version-Release number of selected component (if applicable):
How reproducible:
Steps to Reproduce:
1.
2.
3.
Actual results:
Expected results:
Additional info:
--- Additional comment from Poornima G on 2014-05-02 09:32:22 CEST ---
--- Additional comment from Anand Avati on 2014-05-23 09:38:39 CEST ---
REVIEW: http://review.gluster.org/7857 (glfs_fini: Fix a possible hang in
glfs_fini.) posted (#1) for review on master by Poornima G
(pgurusid at redhat.com)
--- Additional comment from Anand Avati on 2014-06-02 20:09:11 CEST ---
COMMIT: http://review.gluster.org/7857 committed in master by Anand Avati
(avati at redhat.com)
------
commit a96350fa2b68626b8592d5cbd67405e4d8416cca
Author: Poornima G <pgurusid at redhat.com>
Date: Fri May 23 12:58:56 2014 +0530
glfs_fini: Fix a possible hang in glfs_fini.
glfs_fini is called when there is a failure in glfs_new,
glfs_init etc. If an application sees a failure in glfs_new
and calls glfs_fini, it will result in hang in glfs_fini.
Fixed the hang.
Change-Id: I80b52cd76d1d7f3fe9a10a91b7226d54176a8982
BUG: 1091335
Signed-off-by: Poornima G <pgurusid at redhat.com>
Reviewed-on: http://review.gluster.org/7857
Reviewed-by: soumya k <skoduri at redhat.com>
Tested-by: Gluster Build System <jenkins at build.gluster.com>
Reviewed-by: Anand Avati <avati at redhat.com>
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1091335
[Bug 1091335] libgfapi clients hang if glfs_fini is called before glfs_init
https://bugzilla.redhat.com/show_bug.cgi?id=1141158
[Bug 1141158] GlusterFS 3.5.4 Tracker
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list