ID: 15254 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Reproducible crash Operating System: Linux, Solaris and win32 PHP Version: 4.1.1 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [2002-02-03 20:15:42] [EMAIL PROTECTED] Not only for unloading, but also loading modules have smilar problem. Just reminding :) ------------------------------------------------------------------------ [2002-01-28 08:35:39] [EMAIL PROTECTED] 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] [EMAIL PROTECTED] 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 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php