| Summary | Deadlocks in mysql SessionHandler under heavy loads |
| Queue | Horde Groupware Webmail Edition |
| Queue Version | 1.2.6 |
| Type | Enhancement |
| State | Assigned |
| Priority | 1. Low |
| Owners | Chuck Hagenbuch <chuck (at) horde (dot) org> |
| Requester | luc (dot) germain (at) usherbrooke (dot) ca |
| Created | 08/11/2010 (1019 days ago) |
| Due | |
| Updated | 05/12/2011 (745 days ago) |
| Assigned | 08/13/2010 (1017 days ago) |
| Resolved | |
| Attachments | sessionhandler.patch ![]() |
| Milestone | |
| Patch | Yes |
State ⇒ Assigned
Assigned to Chuck Hagenbuch
State ⇒ New
New Attachment: sessionhandler.patch
Patch ⇒ Yes
Milestone ⇒
Queue ⇒ Horde Groupware Webmail Edition
Summary ⇒ Deadlocks in mysql SessionHandler under heavy loads
Type ⇒ Enhancement
Priority ⇒ 1. Low
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