Received: from angular.illustra.com (ifmxoak.illustra.com [206.175.10.34]) by hub.org (8.8.8/8.7.5) with ESMTP id GAA18586; Wed, 29 Jul 1998 06:22:43 -0400 (EDT) Received: from hawk.illustra.com (hawk.illustra.com [158.58.61.70]) by angular.illustra.com (8.7.4/8.7.3) with SMTP id DAA19685; Wed, 29 Jul 1998 03:22:28 -0700 (PDT) Received: by hawk.illustra.com (5.x/smail2.5/06-10-94/S) id AA02881; Tue, 28 Jul 1998 22:16:02 -0700 From: dg@illustra.com (David Gould) Message-Id: <9807290516.AA02881@hawk.illustra.com> Subject: Re: [HACKERS] Coping with backend crash in libpq To: maillist@candle.pha.pa.us (Bruce Momjian) Date: Tue, 28 Jul 1998 22:16:02 -0700 (PDT) Cc: tgl@sss.pgh.pa.us, pgsql-hackers@postgreSQL.org, pgsql-interfaces@postgreSQL.org In-Reply-To: <199807290459.AAA25951@candle.pha.pa.us> from "Bruce Momjian" at Jul 29, 98 00:59:32 am Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > > I've just noticed that libpq doesn't cope very gracefully if the backend > > exits when not in the middle of a query (ie, because the postmaster told > > it to quit after some other BE crashed). The behavior in psql, for > > example, is that the next time you issue a query, psql just exits > > without printing anything at all. This is Not Friendly, especially > > considering that the BE sent a nice little notice message before it quit. > > I say, install the signal handler for SIGPIPE on connection startup, but > when you install it, it returns the previous defined action. If we find > there was a previous defined action, we can re-install theirs, and let > it handle the sigpipe. If an application later defines it's own > sigpipe, over-riding ours, then they get no error message. > > However, I see psql setting the SIGPIPE handler all over the place, so I > don't think that will work there. How about SIGURG? Oops, not portable > for unix domain sockets. Can we send a signal to the process, telling > it the backend has exited. We have that information now, so why not use > it. Define a signal handler for SIGURG or SIGUSR1, and have that print > out a message. If the app redefines that, it will get confused when we > send the signal from the postmaster. Oops, we can't send signals to the > client because they may be owned by other users. > > I am stumped. Let me think about it. Hmmm, perhaps fix psql so that it uses SIGPIPE more sensibly. SIGPIPE really is the right signal to catch here. -dg David Gould dg@illustra.com 510.628.3783 or 510.305.9468 Informix Software (No, really) 300 Lakeside Drive Oakland, CA 94612 - If simplicity worked, the world would be overrun with insects. -