On Tue, 14 Aug 2001 13:45, Chris Cameron wrote:
> I was told this was a PHP problem, and to submit a bug report. I'm not
> too sure what such a bug report would look like, or even if this is a
> PHP problem.
>
> Below is the message I sent to an Apache list, could someone tell me
> whether my problem is crummy code, or an actual problem with
> PHP/Apache?
>
> Thanks
> Chris
>
> -----Original Message-----
> From: Chris Cameron [mailto:[EMAIL PROTECTED]]
> Sent: Friday, August 10, 2001 12:40 PM
> To: [EMAIL PROTECTED]
> Subject: PHP Script causing recursive free() calls (?)
>
>
> I've got quite a problem with part of a PHP script I wrote causing
> Apache too fill up it's error logs with:
> httpd in free(): warning: chunk is already free.
> httpd in free(): warning: chunk is already free.
> httpd in malloc(): warning: recursive call.
> FATAL:  emalloc():  Unable to allocate 256 bytes
>
> Each call of this script will put about 20 megs in my error log.
> My Apache setup is:
> Apache/1.3.20 (Unix)
> mod_ssl/2.8.4
> OpenSSL/0.9.6b
> PHP/4.0.6
>
> And my phpinfo page is at chris.upnix.com/index.php
>
> The part of my PHP script that's causing the problem (sorry about the
> wraping):
> /* If no errors, submit junk to database */
> if(!isset($Error)) {
>       for($i = 1; $i <= $Days; $i++) {
>               /* Write to bookings first */
>               $QueryString = "INSERT INTO bookings VALUES(nextval('BID'),
> '$CompanyID', '" . $TimeSpan[$i] . "', '$TimeF', '$TimeT',
> '$PricePerUnit')";
>               $Query = pg_exec($Connect, $QueryString);
>               $OID = pg_getlastoid($Query);
>               /* Find the BID we were given */
>               $QueryString = "SELECT bid FROM bookings WHERE oid = '" . $OID . "'";
>               $Query = pg_exec($Connect, $QueryString);
>               $Result = pg_fetch_array($Query, 0);
>               $BID = $Result['bid'];
>               /* Go through our therapists */
>               foreach($Therapists[$i] as $Key => $TherapistID) {
>                       $QueryString = "INSERT INTO bookedtherapist VALUES('" . $BID . 
>"',
> '$TherapistID', '$TimeF', '$TimeT')";
>                       pg_exec($Connect, $QueryString);
>               }
>       }
>       /* Everything Should be done, send us off to schview.php */
>       header("Location: " . $BaseURL . "admin/schview.php");
>       exit;
> }
>
>
> I've tried rewriting little parts of this script, but haven't had any
> luck in stopping the errors. Also, I've recompiled everything twice
> now, which also didn't help. Any help would be appreciated.
>
> Thanks,
> Chris


This comes from someone who has no experience with Postgres, but I 
suspect that you may be getting into trouble inside your for and foreach 
loops where you do apossibly huge number of inserts without freeing used 
result pointers. Try doing a pg_free_result after each insert and see if 
that helps.

For reporting PHP bugs, try www.php.net and follow the link 'reporting 
bugs' at the top right :-)

-- 
David Robley      Techno-JoaT, Web Maintainer, Mail List Admin, etc
CENTRE FOR INJURY STUDIES      Flinders University, SOUTH AUSTRALIA  

   Fact is solidified opinion

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to