Re: [PORTS] Port Bug Report: calling notify in pl/pgsql proc causes core dump - Mailing list pgsql-ports

From David Mansfield
Subject Re: [PORTS] Port Bug Report: calling notify in pl/pgsql proc causes core dump
Date
Msg-id Pine.LNX.4.04.9907081144450.28967-100000@spike.cobite.com
Whole thread Raw
In response to Re: [PORTS] Port Bug Report: calling notify in pl/pgsql proc causes core dump  (Bruce Momjian <maillist@candle.pha.pa.us>)
Responses Re: [PORTS] Port Bug Report: calling notify in pl/pgsql proc causes core dump
Re: [PORTS] Port Bug Report: calling notify in pl/pgsql proc causes core dump
List pgsql-ports
>
> Jan, this is yours.
>

Actually, I made a 'workaround' fix to this problem (after posting this
bug report). I'll append the patch.  I don't pretend to understand the
internals of this system, but my guess is that a simple statement like
'notify xyz' went through the planner, got an spi_plan, but the 'plan
list' was empty.  So here's my patch, which may be fixing a symptom, not
the cause, YMMV:

--- pl_exec.c~  Wed May 26 03:07:39 1999
+++ pl_exec.c   Fri Jun 25 11:00:53 1999
@@ -2482,6 +2482,10 @@

        plan = (Plan *) lfirst(spi_plan->ptlist);

+       /* it would seem as though plan can be null... --DAVID */
+       if (plan == NULL)
+               return;
+
        /* ----------
         * 2. It must be a RESULT plan --> no scan's required
         * ----------


>
> >
> > ============================================================================
> >                         POSTGRESQL BUG REPORT TEMPLATE
> > ============================================================================
> >
> >
> > Your name               : David Mansfield
> > Your email address      : david@cobite.com
> >
> > Category                : runtime: back-end
> > Severity                : serious
> >
> > Summary: calling notify in pl/pgsql proc causes core dump
> >
> > System Configuration
> > --------------------
> >   Operating System   : Linux 2.2.9
> >
> >   PostgreSQL version : 6.5
> >
> >   Compiler used      : gcc 2.7.2.3
> >
> > Hardware:
> > ---------
> > RedHat 5.2
> >
> > Versions of other tools:
> > ------------------------
> > RedHat 5.2 standard
> >
> > --------------------------------------------------------------------------
> >
> > Problem Description:
> > --------------------
> > calling notify in pl/pgsql proc causes core dump
> >
> > --------------------------------------------------------------------------
> >
> > Test Case:
> > ----------
> > createdb bugs
> > psql bugs
> > \i /usr/src/postgresql-6.5/src/pl/plpgsql/src/mklang.sql
> > create  function a_func()
> >         returns
> >                 char
> >         as
> >                 'begin
> >                        notify my_listen;
> >                        return \'a\';
> >                  end;'
> >         language
> >                 'plpgsql'
> > ;
> > select a_func();
> >
> >
> > --------------------------------------------------------------------------
> >
> > Solution:
> > ---------
> >
> >
> > --------------------------------------------------------------------------
> >
> >
> >
>
>
>

--
/==============================\
| David Mansfield              |
| david@cobite.com             |
\==============================/


pgsql-ports by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PORTS] Port Bug Report: basic.source and advance.source failed
Next
From: Unprivileged user
Date:
Subject: Port Bug Report: Postmaster bombs with shared memory error