PostgreSQL / PHP Overrun Error - Mailing list pgsql-php

From Mike Rogers
Subject PostgreSQL / PHP Overrun Error
Date
Msg-id OE62aWNsvt8KBBxlIkt00002833@hotmail.com
Whole thread Raw
Responses Re: [BUGS] PostgreSQL / PHP Overrun Error  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: PostgreSQL / PHP Overrun Error  ("Brent R. Matzelle" <bmatzelle@yahoo.com>)
Re: [BUGS] PostgreSQL / PHP Overrun Error  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-php
I have just upgraded to the new PostgreSQL 7.1.3 (from 7.0.3) and have been
experiencing a pretty serious problem:
    On one particular page, in what seems to be completely random instances,
I get buffer overruns and either 0-rows or a crashed apache child.  Turning
on PHP's --enable-debug, I receive the following:


[Wed Sep 26 06:21:12 2001]  Script:  '/path/to/script.php'
---------------------------------------
pgsql.c(167) : Block 0x086A6DF8 status:
Beginning:      Overrun (magic=0x00000000, expected=0x7312F8DC)
      End:      Unknown
---------------------------------------

Sometimes it will actually crash mid-way (probably overwrote some valuable
code):
---------------------------------------
pgsql.c(167) : Block 0x08684290 status:
Beginning:      Overrun (magic=0x0000111A, expected=0x7312F8DC)
[Wed Sep 26 09:22:46 2001] [notice] child pid 8710 exit signal Segmentation
fault (11)

This problem is of great concern to me and I have been working for days
trying to debug it myself and find other reports, with little success.  The
line it claims to be failing on is PHP's ext/pgsql/pgsql.c on line 167 (by
what this claims) which is the following function [the
efree(PGG(last_notice)) line].

static void
_notice_handler(void *arg, const char *message)
{
        PGLS_FETCH();

        if (! PGG(ignore_notices)) {
                php_log_err((char *) message);
                if (PGG(last_notice) != NULL) {
                        efree(PGG(last_notice));
                }
                PGG(last_notice) = estrdup(message);
        }
}


Can anyone provide further input as to why this is causing problems?  The
PHP code works sometimes and not others, and it seems to be only that one
script, so I do not believe it to be a hardware issue.

Any thoughts?  I can provide any further system information if needed.  I
have tried recompiling pgsql, php and apache with different optimizations
[including none at all and debug mode on as i have now] with little change
in the result.

Thanks in advance;
--
Mike

cc: pgsql-hackers; pgsql-php; pgsql_bugs

pgsql-php by date:

Previous
From: roypgsqlphp@xemaps.com
Date:
Subject: running out of persistent connections
Next
From: Tom Lane
Date:
Subject: Re: [BUGS] PostgreSQL / PHP Overrun Error