From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kdp2y-0006x9-FX for qemu-devel@nongnu.org; Thu, 11 Sep 2008 12:29:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kdp2w-0006up-48 for qemu-devel@nongnu.org; Thu, 11 Sep 2008 12:29:31 -0400 Received: from [199.232.76.173] (port=34893 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kdp2v-0006uf-SX for qemu-devel@nongnu.org; Thu, 11 Sep 2008 12:29:29 -0400 Received: from rn-out-0910.google.com ([64.233.170.185]:27211) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kdp2v-00048T-UD for qemu-devel@nongnu.org; Thu, 11 Sep 2008 12:29:30 -0400 Received: by rn-out-0910.google.com with SMTP id m61so677236rnd.8 for ; Thu, 11 Sep 2008 09:29:29 -0700 (PDT) Message-ID: <48C94735.8070809@codemonkey.ws> Date: Thu, 11 Sep 2008 11:28:37 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [5187] Use signalfd() to work around signal/select race References: <1221149035.4145.57.camel@frecb07144> In-Reply-To: <1221149035.4145.57.camel@frecb07144> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier Cc: qemu-devel@nongnu.org Laurent Vivier wrote: > Le mercredi 10 septembre 2008 à 15:45 +0000, Anthony Liguori a écrit : > >> Revision: 5187 >> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5187 >> Author: aliguori >> Date: 2008-09-10 15:45:19 +0000 (Wed, 10 Sep 2008) >> >> Log Message: >> ----------- >> Use signalfd() to work around signal/select race >> > > This commit breaks qemu-nbd: > > # ./qemu-nbd --port 1024 --persistent ../disk.qcow2 > generates "Bus error" when I connect the client: > # ./x86_64-softmmu/qemu-system-x86_64 -hda ../etch64.qcow2 -hdb > nbd:localhost:1024 > > * gdb output: > > Program received signal SIGBUS, Bus error. > [Switching to Thread 0x7f3accdf76e0 (LWP 13146)] > qemu_aio_wait () at block-raw-posix.c:541 > 541 FD_SET(aio_sig_fd, &rdfds); > (gdb) bt > #0 qemu_aio_wait () at block-raw-posix.c:541 > #1 0x0000000000406245 in bdrv_read_em (bs=0x0, > sector_num=140736764918416, > buf=0x8000000000000000
, > nb_sectors=0) at block.c:1289 > #2 0x000000000040437a in nbd_trip (bs=0x622010, csock=8, > size=6442450944, > dev_offset=0, offset=0x7fffd4e13c78, readonly=false, > data=0x7f3acccd5200 "�H\220м", data_size=1048576) at nbd.c:573 > #3 0x0000000000402d11 in main (argc=1, argv=0x1) at qemu-nbd.c:444 > That's because qemu-nbd isn't doing an qemu_aio_init(). There still appears to be an issue though because qemu_aio_wait() doesn't ever returning. I'm looking into it right now. Regards, Anthony Liguori > Laurent >