ID: 32330 Comment by: fxmulder at gmail dot com Reported By: [EMAIL PROTECTED] Status: Verified Bug Type: Session related Operating System: * PHP Version: 6CVS, 5CVS, 5.2.5, 4CVS (2005-03-17) New Comment:
The problem is both mod_data getting set to NULL and zval_ptr_dtor(&mdata->names[i]); for each of the functions in ext/session/mod_user.c:PS_CLOSE_FUNC. If the deconstructor calls are removed as well as the NULL replacements and efree() call on mdata then it works, except then the containing classes are never deconstructed. This could possibly be moved to a location when the script is exiting, and/or another call to session_set_save_handler is made. Previous Comments: ------------------------------------------------------------------------ [2008-01-22 05:43:48] [EMAIL PROTECTED] This bug still exists in PHP 5.2.5 release and current (as of this comment) PHP 6CVS. Using a fresh call to session_set_save_handler() does work, but as previously noted by others, this isn't a desirable behavior. ------------------------------------------------------------------------ [2007-08-23 05:25:49] jkloske at itee dot uq dot edu dot au I'm confirming that I'm also affected by this on all OSs and all versions of PHP I've tried it with (4/5, win/linux) I'm calling session_write_close() not session_destroy() and it's still causing the same error. Re-calling session_set_save_handler between previous close and subsequent open does nothing; the error still occurs. This means that phpMyAdmin (which uses multiple sessions for various authentication handlers at least) is not compatible with user session handlers, due to this bug :) ------------------------------------------------------------------------ [2007-07-05 13:23:23] facingratio at email dot it I confirm that the ini_set workaround doesn't work. The only solution i found is to use the session_set_save_handler(...) again after you call session_destroy(). Also session_write_close() followed by session_start() seems to generate the same fatal error. ------------------------------------------------------------------------ [2007-03-08 05:07:06] colossuswv at hotmail dot com The ini_set workaround doesn't seem to work when using a db to store sessions. Using session_set_save_handler() again after session destroy does work however, albeit an undesirable solution. ------------------------------------------------------------------------ [2006-12-14 17:24:03] faithfulsoft at tiscali dot it I've experienced this problem today, and it was driving me crazy. I was able to resolve it thanks to the last post on this page. I've put this two lines of code ini_set("session.save_handler", "files"); session_start(); in a separate file, and I include them where I need. The strange thing is that I borrowed the piece of code I am using from a GPL portal system, which is working like a charm on my local server with this line ini_set('session.save_handler', 'files'); This is really strange. Anyhow, thank you all guys. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/32330 -- Edit this bug report at http://bugs.php.net/?id=32330&edit=1