Hi Blake,

Welcome to the group of people who are taking dbmail to it's current limits.

This is most likely a timeout issue on the client side. There's no error logged on the dbmail side, other than finding the client has dropped the connection. That's typical for mozilla based clients.

The problem is: dbmail retreives and parses each message one by one using three queries for each message. This is taking just too long. This is a known issue, even though you'r use case is kind of newish. Try doing a header search on such a mailbox, and you'll run into the same problem with even worse results.

I've recently begun to refactor the whole imapcommands implementation to allow the kind of optimizations that are required here. That's a large overhaul, meant to remedy what imo entails a design-flaw in the current code; it handles only one message at a time:

currently it does (bash-ish pseudocode):

for message in messages; do
        result = retrieve message
        result = parse result
        store result
done

whereas much better would be

rows = retrieve messages
for row in rows; do
        result = parse result
        store result
done

so please be patient, this will be fixed.



Blake Mitchell wrote:
(I initially sent this message yesterday, but it didn't get through, because of the attached log file I'm guessing)

First off, I'm using dbmail-imapd CVS from Wednesday, June 9 with MySQL
4.0.18 on RedHat 7.3 with Mozilla Thunderbird 0.6 on Windows XP.

I have a somewhat large mailbox where I keep all my old mail:

mysql> select count(*) from messages where mailbox_idnr = 14;
+----------+
| count(*) |
+----------+
|    10672 |
+----------+
1 row in set (0.01 sec)

I rarely use it, and for now I just use the database directly if I need
to search through it. It would be nice to get at it with a mail client
though. If I attempt to list messages in the folder, the mail client
waits for a short while and then comes up empty. The dbmail imap server
churns for quite a while and ends up with this:

Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: dbmysql.c,db_query:
executing query [SELECT seen_flag, answered_flag, deleted_flag,
flagged_flag, draft_flag, recent_flag FROM messages WHERE message_idnr =
'128066' AND status < '2' AND unique_id != '' AND mailbox_idnr = '14']
Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: IMAPClientHandler():
Finished command uid
Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: IMAPClientHandler(): error
[Broken pipe] on write-stream
Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: PerformChildTask(): client
handling complete, closing streams
Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: PerformChildTask():
connection closed
Jun 13 19:02:21 sls-cd7p8 dbmail/imap4d[788]: PerformChildTask():
waiting for connection

( full log at: http://barkingspoon.com/dbmail-imapd.log.gz )

and then even after this the mail server continues to churn:

USER   PID %CPU %MEM VSZ   RSS STAT TIME COMMAND
root   786  0.0 0.1  2448  860 S    0:00 /usr/local/sbin/dbmail-imapd
dbmail 787  0.0 0.1  2460  928 S    0:00  \_ [dbmail-imapd]
dbmail 788 52.3 0.4  4812 2400 S    1:15      \_ [dbmail-imapd]
dbmail 789  0.0 0.1  2472  964 S    0:00      \_ [dbmail-imapd]
dbmail 790  0.0 0.1  2472  964 S    0:00      \_ [dbmail-imapd]
dbmail 791  0.0 0.1  2472  964 S    0:00      \_ [dbmail-imapd]

although nothing more is logged.

I don't recall if I had this problem with dbmail beta versions, I've
been using 2.0 CVS for too long.

I don't think it's a timeout issue on the client side, I've seen it wait a lot longer for dbmail to do things.

Any ideas?
Blake

_______________________________________________
Dbmail-dev mailing list
[email protected]
http://twister.fastxs.net/mailman/listinfo/dbmail-dev


--
  ________________________________________________________________
  Paul Stevens                                         [EMAIL PROTECTED]
  NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
  The Netherlands_______________________________________www.nfg.nl

Reply via email to