From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=51378 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q50N0-0003YI-Mn for qemu-devel@nongnu.org; Wed, 30 Mar 2011 14:43:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q50Mz-0002fl-HE for qemu-devel@nongnu.org; Wed, 30 Mar 2011 14:43:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52684) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q50Mz-0002fZ-7D for qemu-devel@nongnu.org; Wed, 30 Mar 2011 14:43:53 -0400 Date: Wed, 30 Mar 2011 20:43:48 +0200 From: Gleb Natapov Subject: Re: [Qemu-devel] [PATCHv3] report that QEMU process was killed by a signal Message-ID: <20110330184348.GB7741@redhat.com> References: <20110315115604.GY10151@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel@nongnu.org On Wed, Mar 30, 2011 at 07:39:31PM +0100, Peter Maydell wrote: > On 15 March 2011 11:56, Gleb Natapov wrote: > > Currently when rogue script kills QEMU process (using TERM/INT/HUP > > signal) it looks indistinguishable from system shutdown. Lets report > > that QEMU was killed and leave some clues about the killer identity. > > Unfortunately this patch causes qemu to segfault when killed > via ^C (at least on my Ubuntu maverick system). This is because > it registers a signal handler with sigaction, but then later > the SDL library is initialised and it reinstalls our handler > with plain old signal: > > ohandler = signal(SIGINT, SDL_HandleSIG); > if ( ohandler != SIG_DFL ) > signal(SIGINT, ohandler); > I fixed this in SDL upstream. > This is clearly buggy but on the other hand SDL is pretty widely > deployed and it's the default QEMU video output method, so I think > we need to work around it :-( > > The most straightforward fix is to get the signal number from > argument one and not to bother printing the PID that killed us. > For debugging purposes pid is useful. We cam register signal handler after SDL is initialized though (if waiting for SDL update is not an option). -- Gleb.