Re: Cleaning up unmaintained extensions - interbase
| From: | Lester Caine | Date: | Wed, 20 Jun 2018 10:12:36 +0000 |
| Subject: | Re: Cleaning up unmaintained extensions - interbase | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-102319@lists.php.net to get a copy of this message | ||
On 20/06/18 10:25, Nikita Popov wrote:
Just to clarify which bug I was referring to in that mail, it's this one: https://bugs.php.net/bug.php?id=72175 There are three issues that must be addressed: * The issue in the original bug report: Connecting to the same DB multiple times does not work. * The use of zend_list_delete() in *_close() functions, which is memory-unsafe. * Incorrect interaction of closing and multiple shared connections. While the underlying connection is shared, closing one resource should not close all the other ones, but also not result in any leaks (this ties into the previous point -- you can't just use zend_list_delete for that!) You may need to implement a double resource indirection to properly handle this, one holding the actual connection and another holding the connection resource. If you or someone who is familiar with interbase could fix these issues, that would be highly appreciated.Is there anything in the changes to the code in PHP7 that are ACTUALLY to do with changes to interbase/firebird? On website systems I only ever have a 'singleton' database connection so don't hit this problem, but having just spent half an hour looking through the various notes on different lists it seems to be the way zend handles resources in PHP7 rather than anything to do with the database? THIS is where the nuances of PHP7 need to be understood to be able to read your third point ... where does one need to understand how the database works? I am assuming that my next step here is to work out how zend_list_delete() is intended to be used, perhaps compare that with it's use in other database drivers, and work out just what was broken in 7.0.3 and why ... and "implement a double resource indirection" ... which is much easier to implement if you understand why it is now necessary? -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk