ID: 17461 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Bogus Bug Type: Scripting Engine problem Operating System: Windows 2000 SP2 PHP Version: 4.2.1 New Comment:
Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Because of this, we hope you add your comments to the existing bug instead. Thank you for your interest in PHP. Please add possible additional information here: http://bugs.php.net/bug.php?id=14542 (no need for many reports about same issue) Previous Comments: ------------------------------------------------------------------------ [2002-09-17 11:51:55] [EMAIL PROTECTED] I posted the following response in php.general and php.windows -- responding to users whom looked at the online help file for REGISTER_SHUTDOWN_FUNCTION() on php.net and inquired whether this TIMEOUT was actually a bug or a feature request: ---------------------------------------------- It's a bug. spoke to Rasmus at some length about just before i posted it in the bug report. The online help page is inaccurate in describing the full functionality of the function: http://www.php.net/manual/en/function.register-shutdown-function.php REGISTER_SHUTDOWN_FUNCTION() is suppose to kick-off when any one of the following things happen -- Exit, Error, TIMEOUT or User Abort. According to Rasmus, the TIMEOUT functionality of this function works fine under Linux -- however, it's not working under Win32 ! There apparently is another bug with this function -- you are suppose to be able to call more than one REGISTER_SHUTDOWN_FUNCTION(), and they are suppose to executed in-order... some people are reporting that only the first encountered REGISTER_SHUTDOWN_FUNCTION() is executed, then the script exits. Someone needs to go through this function, pretty thoroughly, and get it working correctly. Being able to run code on a timeout, user-abort or error is critical. Jason ------------------------------------------------------------------------ [2002-07-21 14:13:52] [EMAIL PROTECTED] Don't mean to be a nag... I know there are other issues you programming gods are working on... however, I was just wondering if anyone is working on this REGISTER_SHUTDOWN_FUNCTION() TIMEOUT case? -- I noticed the case has been marked "OPEN" -- not sure if that means someone is working on it, though... I'd love to see this fixed in the next minor release of PHP, 4.2.2 ?? Thanks. Jason ------------------------------------------------------------------------ [2002-07-15 16:16:07] [EMAIL PROTECTED] Please note -- there was a type-o in my email address: my correct email address is [EMAIL PROTECTED] (not, [EMAIL PROTECTED]) ;-) ------------------------------------------------------------------------ [2002-05-27 14:11:04] [EMAIL PROTECTED] REGISTER_SHUTDOWN_FUNCTION() doesn't work on TIMEOUT for the Win32 platform. I've tried this under PHP versions 4.1.1 and 4.2.1 -- same thing happens. Here's a sample script: 1: ?> 2: 3: set_time_limit(1); 4: 5: function clean_up() 6: { 7: print("Script Terminated\n"); 8: } 9: 10: register_shutdown_function("clean_up"); 11: 12: while(1); 13: 14: ?> Here's the error: ----------------- Fatal error: Maximum execution time of 1 second exceeded in C:\timeout_code.php on line 7 When this script TIMES-OUT, the REGISTER_SHUTDOWN_FUNCTION() will "attempt" to run the function "clean_up" but will *immediately* generate the error above in the 1st line (line 7, in this case) of the "clean_up" function -- no matter what it is, and then the script terminates. Now -- if I use the REGISTER_SHUTDOWN_FUNCTION() with an EXIT (instead of a TIMEOUT), the function works fine... it *just* seems to be a TIMEOUT issue. The REGISTER_SHUTDOWN_FUNCTION() needs to ignore the TIMEOUT (timer??) -- and proceed to run any code it's programmed to run. Just a Note: I understand that PRINT() and a few other functions will not work when a REGISTER_SHUTDOWN_FUNCTION() is called and *run* SERVER-SIDE -- however, I am running this script from the COMMAND-LINE and PRINT() does work here, even with a REGISTER_SHUTDOWN_FUNCTION() -- so PRINT() isn't the problem... Just for giggles, I've replaced the PRINT() function with an ERRORLOG() function, in an attempt to write the output to disk -- SAME ERROR and exits on line 7 -- never executing the code. Thanks Jason Caldwell [EMAIL PROTECTED] ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17461&edit=1
