[Tickets #10615] Locks on initial imp ajax requests
bugs at horde.org
bugs at horde.org
Fri Oct 7 14:18:16 UTC 2011
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/10615
------------------------------------------------------------------------------
Ticket | 10615
Created By | goncalo.queiros at portugalmail.net
Summary | Locks on initial imp ajax requests
Queue | IMP
Version | Git master
Type | Enhancement
State | New
Priority | 1. Low
Milestone |
Patch |
Owners |
------------------------------------------------------------------------------
goncalo.queiros at portugalmail.net (2011-10-07 14:18) wrote:
When Imp starts, it makes two ajax calls "viewPort" and "listMailboxes".
While this requests are fast, the problem that im describing here is
negligible, but when you introduce lag on the imap server, there's
evidences that the listMailbox request will lock the session, thus
dragging the viewPort request with it.
What i discovered is that viewPort has the lock on the session and
releases it when there's a potential long running operation.
Meanwhile, listMailboxes starts executing (because it grabbed the lock
on the session), and immediately releases the lock to supposedly
perform a long running operation...
The problem is that as far as i could test, the supposedly long run
operation of listMailbox is not long, so it grabs the lock again
(before viewPort does), and then it actually runs a potentially long
operation (grabbing the list of all the mailboxes from imap, since
this is not cachable).. Meanwhile viewport ends processing and it has
to wait for the session to be unlocked before it can continue..
The problem is very noticeable, when you have lag to the imap server
(viewPort will generally retrieve its data from cache, so the lag is
not important to it) while listMailboxes doesn't cache its result, so
every folder will actually take some time to fetch.
From what i've seen if you completely remove the lock releases from
both requests, than viewPort will render much faster, and the user
will only notice the loading on the folders sidebar.
Bug #7422 is the one responsible for introducing the lock releasing,
but i think that back then, listMailbox supposedly long run operation
was actually between the unlock/lock, and now it isn't.
More information about the bugs
mailing list