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

Reply via email to