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

Reply via email to