| Summary | Deadlocks in mysql SessionHandler under heavy loads |
| Queue | Horde Framework Packages |
| Queue Version | Git master |
| Type | Enhancement |
| State | Rejected |
| Priority | 1. Low |
| Owners | chuck (at) horde (dot) org |
| Requester | luc.germain (at) usherbrooke (dot) ca |
| Created | 08/11/2010 (5565 days ago) |
| Due | |
| Updated | 03/26/2014 (4242 days ago) |
| Assigned | 08/13/2010 (5563 days ago) |
| Resolved | 03/26/2014 (4242 days ago) |
| Milestone | |
| Patch | Yes |
State ⇒ Rejected
there's no empiric feedback from the community, and the default
isolation level can also be set in the MySQL configuration.
Queue ⇒ Horde Framework Packages
Assigned to Chuck Hagenbuch
State ⇒ Assigned
Priority ⇒ 1. Low
Type ⇒ Enhancement
Summary ⇒ Deadlocks in mysql SessionHandler under heavy loads
Queue ⇒ Horde Groupware Webmail Edition
Milestone ⇒
Patch ⇒ Yes
New Attachment: sessionhandler.patch
State ⇒ New
under heavy loads (> 500 users), we start having a lot of deadlocks
messages in the logs:
Aug 05 09:45:47 HORDE [error] [horde] Error writing session data:
Deadlock found when trying to get lock; try restarting transaction
[pid 27607 on line 185 of
"/htdocs/horde/lib/Horde/SessionHandler/mysql.php"]
When this happens, users have to try to login many times before
getting access.
We added the following statement to the mysql driver and it solved the
problem nicely:
mysql_query('SET TRANSACTION ISOLATION LEVEL READ COMMITTED;', $this->_db);
ref: http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html
No more deadlock seen even for > 2000 active users