Summary | Horde_Session_Null causes session lock when using file based sessions. |
Queue | Horde Base |
Queue Version | Git master |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | mrubinsk (at) horde (dot) org |
Requester | horde (at) albasoft (dot) com |
Created | 12/03/2012 (4594 days ago) |
Due | |
Updated | 12/03/2012 (4594 days ago) |
Assigned | |
Resolved | 12/03/2012 (4594 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Version ⇒ Git master
Queue ⇒ Horde Base
Assigned to Michael Rubinsky
State ⇒ Resolved
Priority ⇒ 1. Low
long enough to ensure there is a session_id (some of the auth drivers
need one for crypo functionality). I added code to immediately call
session_write_close() after the session is created to avoid any
locking issues.
commit 645494515230ddfd89b435c711e480e7b0468a0c
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date: Mon Dec 3 14:37:44 2012 -0500
Immediately close the session when using Horde_Session_Null sessions.
Avoids the potential for session lock issues. See
Bug: 11809framework/Core/lib/Horde/Session/Null.php | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
http://git.horde.org/horde-git/-/commit/645494515230ddfd89b435c711e480e7b0468a0c
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ Activesync push problems using file sessions
Queue ⇒ Synchronization
Milestone ⇒
Patch ⇒ No
State ⇒ Unconfirmed
I'm using Horde5 with Apache and mod_php. I've always chosen PHP file
sessions to make tests, for simplicity.
When you choose push synchronization, your webserver uses a process to
look for changes requested, and that process lives until a change is
detected or until it reaches heartbeat seconds selected by ping
command. Unfortunately, with file sessions this means the session file
will be locked until process dies, so no other request from the same
device can be replied. It will wait until first process dies and
releases the lock on session file.
I've seen this when trying to access gal while another process is
attending a previous ping command from the same device. As soon as
ping finishes, gal results appear on my device.
If I choose memcache for sessions, these locking problems disappear,
and requests from same device are processed as soon as they arrive to
webserver.
This has been a very time consuming problem for me, as it prevents
activesync from normal operation, and I think it should be clearly
explained somewhere.