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] [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