[phpOpenTracker-devel] [Bug #5054] DB_mysql_merge driver woes with PHP-5.1.0RC2-dev
[email protected] Wed, 14 Sep 2005 07:57:15 +0200 (CEST)
| Newsgroups | gmane.comp.web.phpopentracker.devel |
|---|---|
| Message-ID | <[email protected]> |
Bug #5054, was updated on 2005-Sep-13 09:52
Here is a current snapshot of the bug.
Project: phpOpenTracker
Category: None
Status: Closed
Resolution: Fixed
Bug Group: None
Priority: 5
Submitted by: tuupola
Assigned to : none
Summary: DB_mysql_merge driver woes with PHP-5.1.0RC2-dev
Details: When clicking a month simple_report monthly statistics something goes into forever lasting loop and Apache starts to consume all memory. Bumbing up debug level reveals this:
-cut-
Warning: date() expects parameter 2 to be long, string given in /export/www/www.loisto.info/EGOCVS/RAY/Loisto/phpOpenTracker/DB/mysql_merge.php on line 491
Warning: date() expects parameter 2 to be long, string given in /export/www/www.loisto.info/EGOCVS/RAY/Loisto/phpOpenTracker/DB/mysql_merge.php on line 492
Warning: date() expects parameter 2 to be long, string given in /export/www/www.loisto.info/EGOCVS/RAY/Loisto/phpOpenTracker/DB/mysql_merge.php on line 493
-cut-
Without digging any deeper the following patch fixes the problem. However I do not know if this is The Correct Way To Do It (TM):
-cut-
>diff -u mysql_merge.php mysql_merge.php.org
--- mysql_merge.php 2005-09-13 10:48:57.806210000 +0300
+++ mysql_merge.php.org 2005-09-13 10:41:03.567698000 +0300
@@ -485,12 +485,12 @@
$accesslogTables = array();
$visitorsTables = array();
- $startDay = $day = date('d', (integer)$parsedQuery[$between + 1]);
- $startMonth = $month = date('m', (integer)$parsedQuery[$between + 1]);
- $startYear = $year = date('Y', (integer)$parsedQuery[$between + 1]);
- $endDay = date('d', (integer)$parsedQuery[$between + 3]);
- $endMonth = date('m', (integer)$parsedQuery[$between + 3]);
- $endYear = date('Y', (integer)$parsedQuery[$between + 3]);
+ $startDay = $day = date('d', $parsedQuery[$between + 1]);
+ $startMonth = $month = date('m', $parsedQuery[$between + 1]);
+ $startYear = $year = date('Y', $parsedQuery[$between + 1]);
+ $endDay = date('d', $parsedQuery[$between + 3]);
+ $endMonth = date('m', $parsedQuery[$between + 3]);
+ $endYear = date('Y', $parsedQuery[$between + 3]);
$done = false;
$numDaysInCurrentMonth = $this->_numDaysInMonth($month, $year);
-cut-
Follow-Ups:
Date: 2005-Sep-14 07:57
By: s_bergmann
Comment:
Fixed in SVN.
-------------------------------------------------------
Date: 2005-Sep-13 09:55
By: tuupola
Comment:
Ahem. Sorry the patch was reversed, the correct one would be:
-cut-
>diff -u mysql_merge.php.org mysql_merge.php
--- mysql_merge.php.org 2005-09-13 10:41:03.567698000 +0300
+++ mysql_merge.php 2005-09-13 10:48:57.806210000 +0300
@@ -485,12 +485,12 @@
$accesslogTables = array();
$visitorsTables = array();
- $startDay = $day = date('d', $parsedQuery[$between + 1]);
- $startMonth = $month = date('m', $parsedQuery[$between + 1]);
- $startYear = $year = date('Y', $parsedQuery[$between + 1]);
- $endDay = date('d', $parsedQuery[$between + 3]);
- $endMonth = date('m', $parsedQuery[$between + 3]);
- $endYear = date('Y', $parsedQuery[$between + 3]);
+ $startDay = $day = date('d', (integer)$parsedQuery[$between + 1]);
+ $startMonth = $month = date('m', (integer)$parsedQuery[$between + 1]);
+ $startYear = $year = date('Y', (integer)$parsedQuery[$between + 1]);
+ $endDay = date('d', (integer)$parsedQuery[$between + 3]);
+ $endMonth = date('m', (integer)$parsedQuery[$between + 3]);
+ $endYear = date('Y', (integer)$parsedQuery[$between + 3]);
$done = false;
$numDaysInCurrentMonth = $this->_numDaysInMonth($month, $year);
-cut-
-------------------------------------------------------
For detailed info, follow this link:
http://developer.berlios.de/bugs/?func=detailbug&bug_id=5054&group_id=2025