qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Bug 1308542] [NEW] hang in qemu_gluster_init


From: Bharata B Rao
Subject: Re: [Qemu-devel] [Bug 1308542] [NEW] hang in qemu_gluster_init
Date: Thu, 17 Apr 2014 16:26:18 +0530
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Apr 17, 2014 at 11:27:52AM +0200, Kevin Wolf wrote:
> Am 16.04.2014 um 15:25 hat John Eckersberg geschrieben:
> > Public bug reported:
> > 
> > In qemu_gluster_init, if the call to either glfs_set_volfile_server or
> > glfs_set_logging fails into the "out" case, glfs_fini is called without
> > having first calling glfs_init.  This causes glfs_lock to spin forever
> > on this bit:
> > 
> >     while (!fs->init)
> >             pthread_cond_wait (&fs->cond, &fs->mutex);
> > 
> > And here's the bottom part of the backtrace when hung:
> > 
> > #0  pthread_cond_wait@@GLIBC_2.3.2 () at 
> > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:183
> > #1  0x00007feceebf58c3 in glfs_lock (fs=0x7fecf15660b0) at 
> > glfs-internal.h:156
> > #2  glfs_active_subvol (fs=0x7fecf15660b0) at glfs-resolve.c:799
> > #3  0x00007feceebeb5b4 in glfs_fini (fs=0x7fecf15660b0) at glfs.c:652
> > #4  0x00007fecf0043c73 in qemu_gluster_init (gconf=<value optimized out>, 
> > filename=<value optimized out>) at 
> > /usr/src/debug/qemu-kvm-0.12.1.2/block/gluster.c:229
> > 
> > I believe this can be fixed by simply moving the call to glfs_init after
> > the call to glfs_new but before the calls to glfs_set_volfile_server or
> > glfs_set_logging.
> 
> Bharata, can you check whether this is the correct solution, and if so,
> send out a patch?

I think glfs_set_volfile_server should have been called before glfs_init.
Anyway will check gluster folks and send out an appropriate patch for this.

BTW we haven't hit this problem till now because glfs_fini was nop when
we wrote this driver but has been functionally implemented now.

Regards,
Bharata.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]