| Bug #19677 | Call to undefined function: MDB2_Driver_mysql::isError() |
| Submitted: |
2012年10月28日 00:00 UTC |
| From: |
rhsoftware |
Assigned: |
danielc |
| Status: |
Closed |
Package: |
MDB2 (version 2.5.0b4) |
| PHP Version: |
5.3.18 |
OS: |
Linux |
| Roadmaps: |
(Not assigned) |
[2012年10月28日 00:00 UTC] rhsoftware
(Harald Reindl)
Description:
------------
Starting to download MDB2-2.5.0b4.tgz (133,407 bytes)
.............................done: 133,407 bytes
upgrade ok: channel://pear.php.net/MDB2-2.5.0b4
[root@buildserver:/var/log/roundcubemail]$ cat errors
[24-Oct-2012 15:43:39 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:41 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:42 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:43 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:43 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:43 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:44 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:44 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[24-Oct-2012 16:17:44 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
[27-Oct-2012 20:54:20 Europe/Vienna] PHP Fatal error: Call to undefined function: MDB2_Driver_mysql::isError(). in /usr/share/pear/MDB2.php on line 1996
Expected result:
----------------
working roundcubemail
Actual result:
--------------
white login page
Comments
[2012年10月28日 00:47 UTC] danielc
(Daniel Convissor)
-Status: Open
+Status: Feedback
-Assigned To:
+Assigned To: danielc
Which version of Roundcube are you using?
[2012年10月28日 00:47 UTC] danielc
(Daniel Convissor)
-Package: MDB2_Driver_mysql
+Package: MDB2
[2012年10月28日 02:09 UTC] rhsoftware
(Harald Reindl)
version of roundcube does not matter
at the begin 0.7.3 and in the hope it may be better with 0.8.2 i upgraded all roundcube setups but i have still to downgrade the pear packages (which are brand new) to get roundcube working
[2012年10月28日 06:54 UTC] danielc
(Daniel Convissor)
-Status: Feedback
+Status: Bogus
The version of Roundcube does matter. The 0.8.2 release was improperly using the isError() method. There are two $this->db_handle->isError() calls in ./program/include/rcube_mdb2.php. That has been removed in master. Please open a ticket with Roundcube to get them to change the calls to MDB2::isError().
[2012年10月28日 12:43 UTC] rhsoftware
(Harald Reindl)
> The version of Roundcube does matter.
> The 0.8.2 release was improperly using the isError() method.
what exavtly did you not undersatnd in the fact
that the pear-update breeaks 0..x too?
> There are two $this->db_handle->isError() calls in
> ./program/include/rcube_mdb2.php.
hmmm
> That has been removed in master.
aaah - PEAR does incompatible changing interfaces
but a bugreport is bogus and a long tme working
application faulty?
the typical PHP attitude............
> Please open a ticket with Roundcube to get them to
> change the calls to MDB2::isError()
why do you not do this?
becasue YOU can explain them why THEY have to fix YOUR
incompaible change
[2012年10月28日 13:12 UTC] cweiske
(Christian Weiske)
[2012年10月28日 17:12 UTC] danielc
(Daniel Convissor)
> PEAR does incompatible changing interfaces but a bugreport is bogus
> and a long tme working application faulty?
MDB2 did not change it's _defined_ interface. The isError() method has always been static method of the MDB2 class. Roundcube made a mistake by calling the method on an instantiated MDB2_Driver_mysqli object.
[2012年10月28日 17:18 UTC] rhsoftware
(Harald Reindl)
and that is why is is now HARD broken instead having a compatible MDB2 version which is throwing an DEPRECATED message since years? sorry but YOUR understanding of quality and compatibility is far away from mine
* declare methods as private if you do not want them accessed
* do not define/use static methods at all in code which is typically instantiated
* do NOT break with "fatal error" without warnings in previous releases
[2012年10月28日 23:50 UTC] till
(Till Klampaeckel)
-Status: Bogus
+Status: Feedback
@Daniel @Christian
I agree that if a method was public before, it shouldn't be gone all of a sudden. Even
if it was used wrong which of course is unfortunate.
I am guessing MDB2 stopped extending PEAR somewhere in between? Hence the
method is gone?
[2012年10月29日 00:14 UTC] danielc
(Daniel Convissor)
-Summary: MDB2-2.5.0b4 breaks roundcubemail
+Summary: Call to undefined function:
MDB2_Driver_mysql::isError()
-Status: Feedback
+Status: Analyzed
-Package Version:
+Package Version: 2.5.0b4
I figured out this morning what was going on then had to go out. MDB2_Driver_Common used to extend PEAR. I'm working on a resolution now.
[2012年10月29日 03:48 UTC] rhsoftware
(Harald Reindl)
thank you for removing the "Bogus"
it would be much easier for people to keep calm down if the "bogus" would be used MUCH more carfeul in the php-world. seeing a pear-update, test on the staging server with a widely used application like roundcubemail and even try out a major upgrade of roundcube while with both you get a whrite page should be enough to prove where the problem exists without a long discussion (especially if the rpeorter does upgrades/downgrades in all directions with all involved components to nail down the problem)
[2012年10月29日 19:35 UTC] danielc
(Daniel Convissor)
-Status: Analyzed
+Status: Closed
Fix committed to SVN. A new release will be created shortly.
[2012年10月29日 23:25 UTC] rhsoftware
(Harald Reindl)
upgrade ok: channel://pear.php.net/MDB2-2.5.0b5
upgrade ok: channel://pear.php.net/MDB2_Driver_mysql-1.5.0b4
roundcube is working fine again
thank you!