Re: 8.3.3 win32 crashing

From: Klint Gore <kgore4(at)une(dot)edu(dot)au>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general General <pgsql-general(at)postgresql(dot)org>
Subject: Re: 8.3.3 win32 crashing
Date: 2008-08-20 00:13:37
Message-ID: 48AB61B1.1050603@une.edu.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Tom Lane wrote:
> Klint Gore <kgore4(at)une(dot)edu(dot)au> writes:
> > Faulting application postgres.exe, version 8.3.3.8160, faulting module
> > msvcr80.dll, version 8.0.50727.1433, fault address 0x0001e44a.
>
> > I have a function that's doing a summary report counting data. It makes
> > a couple of small temp tables then makes a big temp table. In the query
> > that makes the big temp table, there's an immutable function that gets
> > called thousands of times in the execution. In the immutable function,
> > there was a raise notice for debugging . Without the raise, the query
> > finishes in about 40sec. With it, the postgres.exe grinds down to about
> > 2% cpu usage and eventually throws the message above. Then I reboot the
> > machine - nothing responds to control.
>
> Please try to narrow it down a little. It seems like this could be
> caused by sending the messages to the postmaster log, or by sending
> them to the client, or by the client not processing them nicely.
> (You didn't say what client program you're using.) I'd suggest
> adjusting client_min_messages and log_min_messages so that the notice
> message goes to only one of the two places, and and then seeing what
> happens.
>

Client is pgAdmin from the 8.3.3 installer.

client=warning, log=warning completes
client=warning, log=notice fails
client=notice, log=warning completes
client=notice, log=notice fails

It fails a heck of a lot quicker with client=warning, log=notice.

This is the raise that causes it
CREATE OR REPLACE FUNCTION stagecode(date, date)
RETURNS text AS
$BODY$
declare
TimeSpan integer = $2 - $1;
begin
raise notice '%',TimeSpan;
return
case when $1 is null or $2 is null then 'X'
when TimeSpan < 10 then 'B'
when TimeSpan < 70 then 'L'
when TimeSpan < 120 then 'W'
when TimeSpan < 330 then 'P'
when Timespan < 450 then 'Y'
when Timespan < 700 then 'H'
else 'A'
end;
end;$BODY$

klint.

--
Klint Gore
Database Manager
Sheep CRC
A.G.B.U.
University of New England
Armidale NSW 2350

Ph: 02 6773 3789
Fax: 02 6773 3266
EMail: kgore4(at)une(dot)edu(dot)au

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-08-20 01:44:55 Re: 8.3.3 win32 crashing
Previous Message Dale Harris 2008-08-19 23:14:44 Re: can't get UPDATE ... RETURNING ... INTO ... to compile successfully