Any chance you can setup and Engine 2 build and see if this problem persists?
Andi At 06:42 AM 8/27/2002 -0700, Michael Sisolak wrote: >--- Zeev Suraski <[EMAIL PROTECTED]> wrote: > > At 09:53 27/08/2002, Michael Sisolak wrote: > > > > >i've been doing some debugging of the crashes when running php > > under > > > > >the isapi sapi. is anybody else currently looking at this? if > > you > > > > >are let's talk - here are my notes so far. > > > > > > > > first off, can you try using > > > > http://www.php.net/~zeev/php-4.2.3rc1.tar.gz > > > > and see if you experience the same problems? i've made some > > > > thread-safety related fixes there, even though none should lead > > > > to a hard crash... > > > > > >zeev, > > > > > >i believe that i may have tracked down a major isapi filter > > >thread-safety hole. if i understand what zend_startup() is doing > > >correctly, it assumes that the thread that it runs under will not > > also > > >be used to serve http requests. > > > > No, the startup thread can be used as a regular HTTP thread, nothing > > in the > > code should prevent that. > > The globals code in the startup sequence is very tricky, but it > > should work. > >This is a sample of the debug output that I'm seeing (this is PHP 4.2.1 >running under Windows 2000 Professional, single CPU): > >[1948] the startup thread is 1956 >[1948] GLOBAL_FUNCTION_TABLE is 4226120 >[1948] in HttpExtensionProc thread 1956, CG(function_table) is 4226120 >[1948] in HttpExtensionProc thread 1520, CG(function_table) is 18834536 >[1948] in HttpExtensionProc thread 920, CG(function_table) is 18838912 >[1948] in HttpExtensionProc thread 1956, CG(function_table) is 4226120 >[1948] in HttpExtensionProc thread 1256, CG(function_table) is 19250808 >[1948] in HttpExtensionProc thread 920, CG(function_table) is 18838912 >[1948] in HttpExtensionProc thread 1956, CG(function_table) is 4226120 > >Notice that the initial thread (1956) appears to continue to use >GLOBAL_FUNCTION_TABLE as it's own CG(function_table). I'm reporting >the GLOBAL_FUNCTION_TABLE value from within zend_startup() - is there >some point later in the code that makes it okay that this is the same >value that I get for a CG(function_table) later? > > > Either way - starting threads from an ISAPI filter/extension is > > completely > > forbidden (or at least strongly discouraged) so even if there is some > > bug > > in there, starting our own thread is not an option. > >I don't believe that this is true. In this sample on MSDN: > >http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q197728 > >their code for GetExtensionVersion calls AfxBeginThread. Also in this >document: > >http://msdn.microsoft.com/library/en-us/vccore/html/vcconatlserverandcom.asp > >point 1 recommends "Create your own thread in GetExtensionVersion on >which you can initialize COM..." > > > Can you give me the data I mentioned in the previous letter? > >This is PHP 4.2.1 running under Windows 2000 Professional (SP3) on a >single CPU system. I can't really send the code as I'm currently >testing with a large application that I have been running under CGI. >I'll see if I can come up with a simpler example that causes the crash, >but the debug output above would be the same either way. Please let me >know if there is anything else I can provide to help in tracking this >down. > > >Michael Sisolak >[EMAIL PROTECTED] > > >__________________________________________________ >Do You Yahoo!? >Yahoo! Finance - Get real-time stock quotes >http://finance.yahoo.com > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php