Gordon Messmer wrote:
> On 06/09/2009 01:51 PM, Alexander M Thompson wrote:
>   
>> The only problem is, it seems like Copy operations are very slow for the
>> first 30-45 seconds of a given imap session, sometimes to the point
>> where you only can do one operation before it gets better (i.e. copying
>> a small mail to the sent folder takes 30 seconds).
>>     
> ...
>
> You do realize that copying a message to the sent folder will cause 
> thunderbird to initiate a new connection, right?  If the first copy 
> operation has a long delay and subsequent copy operations do not, then 
> you're probably seeing general connection delays.  Check TCPDOPTS in 
> imapd, and add "-nodnslookup -noidentlookup" if they're not present.
>   
I'd checked all that previously, the connection completes successfully 
and starts issuing imap commands before pausing. I've gone so far as to 
truss the imapd process on a test server while one of the people 
experiencing the problem used it. What I found is disheartening to say 
the least:

 PID     TIMESTAMP   SYSCALL                      =                  
RETURN CODE
26243:  173.5222        openat(-3041965, "./.Sent/cur", 
O_RDONLY|O_NDELAY|O_LARGEFILE) = 7
26243:  173.5223        fcntl(7, F_SETFD, 0x00000001)                   = 0
26243:  173.5223        fstat64(7, 0x08042420)                          = 0
26243:  173.8125        getdents64(7, 0xFEF64000, 8192)                 
= 7824
26243:  173.9659        getdents64(7, 0xFEF64000, 8192)                 
= 7776
26243:  174.0832        getdents64(7, 0xFEF64000, 8192)                 
= 7776
.... (Lots and lots of getdents64 [get directory entries] calls, 
enumerating every file in ./.Sent/cur)
26243:  214.3709        getdents64(7, 0xFEF64000, 8192)                 
= 7792
26243:  214.3973        getdents64(7, 0xFEF64000, 8192)                 
= 480
26243:  214.3975        getdents64(7, 0xFEF64000, 8192)                 = 0

For whatever reason, courier is enumerating every single file in 
.Sent/cur and doing *something*, an operation that takes about 41 
seconds in this case. Again, this only happens once per connection or 
so, so it must be putting it all into a hash table for future use... or 
something. But it's doing this before telling the client it has 
completed the copy operation (which it has, I can tell from the truss 
output). I'm truly at a loss as to how I could fix this behavior.


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
courier-users mailing list
courier-users@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to