Re: [Qemu-devel] [Questions] NBD issue or CoMutex->holder issue?

2016-10-11 Thread Changlong Xie
On 10/11/2016 06:47 PM, Paolo Bonzini wrote: the free_sema->queue head, so set free_sema->holder as >revelant coroutine. NBD is using the CoMutex in a way that wasn't anticipated. The simplest fix is to change it to CoQueue, which is like a condition variable. Instead of locking if in_flight

Re: [Qemu-devel] [Questions] NBD issue or CoMutex->holder issue?

2016-10-11 Thread Paolo Bonzini
On 11/10/2016 12:35, Changlong Xie wrote: > For nbd client, if request number is large than MAX_NBD_REQUESTS(16), we > will queue the rest requests into free_sema->queue. > When nbd client receives one reply, it will unlock free_sema, then pop > the free_sema->queue head, so set

[Qemu-devel] [Questions] NBD issue or CoMutex->holder issue?

2016-10-11 Thread Changlong Xie
Hi all Recently during test COLO, i encounter some problems. Here is the backtrace qemu-system-x86_64: util/qemu-coroutine-lock.c:148: qemu_co_mutex_unlock: Assertion `mutex->holder == self' failed. [New Thread 0x7fff0e7fc700 (LWP 20936)] Program received signal SIGABRT, Aborted.