ID: 25070 Updated by: [EMAIL PROTECTED] Reported By: akss at plesk dot ru -Status: Open +Status: Closed Bug Type: Session related Operating System: Windows PHP Version: 4.3.3 New Comment:
This bug has been fixed in CVS. In case this was a PHP problem, snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. In case this was a documentation problem, the fix will show up soon at http://www.php.net/manual/. In case this was a PHP.net website problem, the change will show up on the PHP.net site and on the mirror sites in short time. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2003-08-25 23:18:08] akss at plesk dot ru Unfortunatelly i can't give a code. It closed development. And i have not time now for produce purified test example. I try to describe 1 Create page with form with 2 input fields login & pass and submit button (login page). 2 Create auto prepend file with session check. If no session go to login page. 3 Change session parameters in auto prepend file ini_set('session.gc_probability', 1-5); session_save_path('deep 4-5'); ini_set('session.gc_maxlifetime', near 20000); 4 On login submit create session. Put to her both parameter login and pass. If session created (parameters setted) redirect to other pages with 2-3 frames which check session settings too. 5 Made many quickly switchings over this frames. 1st, 2nd, 3d, again 1st. 6 Apache without patch hangs up. ------------------------------------------------------------------------ [2003-08-25 22:02:42] [EMAIL PROTECTED] I've been trying to reproduce this without luck..can you please give a simple test case with which you have reproduced this reliably? ------------------------------------------------------------------------ [2003-08-20 03:30:03] akss at plesk dot ru Patch for fix ext/session/mod_files.c on windows: --- mod_files.c.orig Tue May 20 20:01:54 2003 +++ mod_files.c Fri Aug 15 05:12:40 2003 @@ -124,6 +124,7 @@ static void ps_files_close(ps_files *data) { if (data->fd != -1) { + flock(data->fd, LOCK_UN); close(data->fd); data->fd = -1; } @@ -275,8 +276,10 @@ if (data->fd < 0) return FAILURE; - if (fstat(data->fd, &sbuf)) + if (fstat(data->fd, &sbuf)) { + flock(data->fd, LOCK_UN); return FAILURE; + } data->st_size = *vallen = sbuf.st_size; *val = emalloc(sbuf.st_size); @@ -287,6 +290,7 @@ lseek(data->fd, 0, SEEK_SET); n = read(data->fd, *val, sbuf.st_size); #endif + flock(data->fd, LOCK_UN); if (n != sbuf.st_size) { if (n == -1) @@ -325,6 +329,7 @@ lseek(data->fd, 0, SEEK_SET); n = write(data->fd, val, vallen); #endif + flock(data->fd, LOCK_UN); if (n != vallen) { if (n == -1) Other case apache hangs up. ------------------------------------------------------------------------ [2003-08-13 04:16:44] akss at plesk dot ru Description: ------------ php-4.3.2 Windows hangs at frequent references to the pages using the sessions mechanism. This is because too many locks are created for a session file "sess_xxx". ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25070&edit=1
