Bug #15254 Updated: modules are unloaded in the wrong order

From: Date: Tue, 18 Jun 2002 07:29:55 +0000
Subject: Bug #15254 Updated: modules are unloaded in the wrong order
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-11025@lists.php.net to get a copy of this message
ID: 15254 Updated by: derick@php.net Reported By: stephensb@aciworldwide.com -Status: Open +Status: Closed Bug Type: Scripting Engine problem Operating System: Linux, Solaris and win32 PHP Version: 4.1.1 New Comment: This bug has been fixed in CVS. You can grab a snapshot of the CVS version at http://snaps.php.net/. In case this was a documentation problem, the fix will show up soon at http://www.php.net/manual/. In case this was a PHP.net website problem, the change will show up on the PHP.net site and on the mirror sites. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2002-02-04 06:32:13] stephensb@aciworldwide.com For loading, I presume you're referring to the way PHP apparently loads and unloads all the modules? If so, then yes: that's how we noticed the problem. With our two modules, PHP would fail to start up until we reordered zend_hash_destroy. Is there any reason *not* to traverse the list in reverse order in zend_hash_destroy? It seems logical to me to try to destroy things in the reverse order that you created them, in general. ------------------------------------------------------------------------ [2002-02-03 20:15:42] yohgaki@php.net Not only for unloading, but also loading modules have smilar problem. Just reminding :) ------------------------------------------------------------------------ [2002-01-28 08:35:39] hholzgra@php.net i remember doing something about that somewhere around 4.0.5, too, but i can't remember the outcome :( ------------------------------------------------------------------------ [2002-01-28 08:14:22] stephensb@aciworldwide.com zend_hash_destroy destroys things in order. Thus, if one has two loadable modules, one of which depends on the other by calling a function in the initialization or finalization functions, then bad things will happen whichever order they appear in php.ini, since whichever way around they're listed, a function will be called after the providing library has been unloaded. Our fix is simply to change zend_hash_destroy to traverse its list backwards (from ht->pListTail rather than ht->pListHead). (I believe we (probably as MessagingDirect) reported this bug in PHP3 and it was fixed then, but it seems to have reappeared.) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=15254&edit=1

« previous php.bugs (#11025) next »