[Tickets #13231] Re: Hashtable session handler doesn't unlock on session close

noreply at bugs.horde.org noreply at bugs.horde.org
Wed May 28 13:12:23 UTC 2014


BITTE NICHT AUF DIESE NACHRICHT ANTWORTEN. NACHRICHTEN AN DIESE  
E-MAIL-ADRESSE WERDEN NICHT GELESEN.

Ticket-URL: http://bugs.horde.org/ticket/13231
------------------------------------------------------------------------------
  Ticket           | 13231
  Aktualisiert Von | Jan Schneider <jan at horde.org>
  Zusammenfassung  | Hashtable session handler doesn't unlock on session close
  Warteschlange    | Horde Framework Packages
  Version          | Git master
  Typ              | Bug
  Status           | Feedback
  Priorität        | 1. Low
  Milestone        |
  Patch            |
  Zuständige       |
------------------------------------------------------------------------------


Jan Schneider <jan at horde.org> (2014-05-28 15:12) hat geschrieben:

>> Well, that's how locking works. The question is, why is unlocking not
>> working during the session.
>
> I don't think I fully understand this. Should the lock be released  
> *before* or *after* processing the calendar resource?

Before:  
https://github.com/horde/horde/blob/master/kronolith/lib/Ajax/Application/Handler.php#L113

>> Horde_SessionHandler_Storage_Hashtable::close() should be called from
>> PHP, and that should delete() the key from memcache again in
>> Horde_Memcache::unlock().
>
> That is what happens, since all 15 listEvents are serviced  
> eventually. The problem I see (but this may be by design, I don't  
> know) is that in the implementation of the current Hashtable  
> sessionhandler, the lock seems to be removed only when the listEvent  
> completed. Which means that effectively, only one listEvent is  
> handled at the same time, while other listEvent processes are  
> waiting for the lock to release.
>
> I expected similar behavior as for the Sql or builtin  
> sessionhandlers, where all listEvent processes are running  
> concurrently and don't seem to have to wait for locks to be  
> released. Maybe these don't lock the session data and is that the  
> reason why they are a lot faster in updating the calendar view.

No, sessions are always locked. And this doesn't have anything to do  
with Kronolith. Closing a session obviously just doesn't work in the  
Memcache implementation. For whatever reason.





More information about the bugs mailing list