#25070 [Opn]: Apache is stopped on intesive session work

From: Date: Tue, 26 Aug 2003 04:19:44 +0000
Subject: #25070 [Opn]: Apache is stopped on intesive session work
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-46630@lists.php.net to get a copy of this message
ID: 25070 User updated by: akss at plesk dot ru -Summary: Windows is stopped on intesive session work Reported By: akss at plesk dot ru Status: Open Bug Type: Session related Operating System: Windows PHP Version: 4.3.3 New Comment: change summary to correct 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] sniper@php.net 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

« previous php.bugs (#46630) next »