Re: [PHP] PHP Script causing recursive free() calls (?)

2001-08-14 Thread David Robley

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]




[PHP] PHP Script causing recursive free() calls (?)

2001-08-13 Thread Chris Cameron

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


-- 
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]