|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #25070 Apache is stopped on intesive session work
Submitted: 2003-08-13 04:16 UTC Modified: 2003-09-24 19:37 UTC
Avg. Score:4.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: akss at plesk dot ru Assigned:
Status: Closed Package: Session related
PHP Version: 4.3.3 OS: Windows
Private report: No CVE-ID: None
 [2003-08-13 04:16 UTC] akss at plesk dot ru

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".


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2003-08-20 03:30 UTC] 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);
                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);
+  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);
+  flock(data->fd, LOCK_UN);

        if (n != vallen) {
                if (n == -1)

Other case apache hangs up.
 [2003-08-25 22:02 UTC]
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-25 23:18 UTC] 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-09-24 19:37 UTC]
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
In case this was a documentation problem, the fix will show up soon at

In case this was a website problem, the change will show
up on the site and on the mirror sites in short time.
Thank you for the report, and for helping us make PHP better.

PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Feb 27 21:01:27 2024 UTC