Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:102319 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60707 invoked from network); 20 Jun 2018 10:12:41 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Jun 2018 10:12:41 -0000 Authentication-Results: pb1.pair.com header.from=lester@lsces.co.uk; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=lester@lsces.co.uk; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain lsces.co.uk designates 185.153.204.204 as permitted sender) X-PHP-List-Original-Sender: lester@lsces.co.uk X-Host-Fingerprint: 185.153.204.204 mail4.serversure.net Linux 2.6 Received: from [185.153.204.204] ([185.153.204.204:34073] helo=mail4.serversure.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 47/D2-32156-8982A2B5 for ; Wed, 20 Jun 2018 06:12:40 -0400 Received: (qmail 8631 invoked by uid 89); 20 Jun 2018 10:12:37 -0000 Received: by simscan 1.3.1 ppid: 8625, pid: 8628, t: 0.0444s scanners: attach: 1.3.1 clamav: 0.96/m:52/d:10677 Received: from unknown (HELO ?10.0.0.7?) (lester@lsces.co.uk@81.138.11.136) by mail4.serversure.net with ESMTPA; 20 Jun 2018 10:12:37 -0000 To: internals@lists.php.net References: <9bcd3495-4d32-dfd0-c91f-29cdc0c582d2@gmail.com> Message-ID: Date: Wed, 20 Jun 2018 11:12:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Cleaning up unmaintained extensions - interbase From: lester@lsces.co.uk (Lester Caine) 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