I thought about making a release now, but I'll probably do some more fixes tomorrow, so here's a prerelease for everyone to test. :) If you see any bugs with this (old or new), please report.
http://dovecot.org/tmp/dovecot-1.1.3-rc.tar.gz
Important changes are:
* mail_max_userip_connections limit no longer applies to master user
logins.
+ login_log_format_elements: Added %k to show SSL protocol/cipher
information. Not included by default.
+ imap/pop3-proxy: If auth_verbose=yes, log proxy login failures.
+ deliver: Added -s parameter to autosubscribe to autocreated mailboxes.
- message parser fixes - hopefully fixes an infinite looping problem
- SORT: One more assert-crashfix when renumbering index sort IDs.
- mbox: Saving may have truncated the mail being saved
- mbox: Several other bugfixes
- mail_full_filesystem_access=yes was broken when listing mailboxes
(it still is with maildir++ layout).
- maildirlock utility was somewhat broken
- zlib plugin: bzip2 support was somewhat broken
- NFS: Make sure writing to files via output streams don't
assert-crash when write() returns only partial success.
- Timo Sirainen, 2008-08-30 15:33
I thought about making a release now, but I'll probably do some more fixes tomorrow, so here's a prerelease for everyone to test. :) If you see any bugs with this (old or new), please report. [...]
The expire plugin using MySQL as a backend still doesn't work at all here, the table remains empty and doesn't ever get updated (see http://www.dovecot.org/list/dovecot/2008-August/032687.html).
[root@airframe]:~# dovecot -n # 1.1.3: /usr/local/etc/dovecot.conf login_dir: /usr/local/var/run/dovecot/login login_executable: /usr/local/libexec/dovecot/imap-login login_greeting_capability: yes mail_max_userip_connections: 20 verbose_proctitle: yes mail_location: maildir:/home/%u/Maildir:INBOX=/home/%u/Maildir/.INBOX fsync_disable: yes mail_plugins: expire fts fts_squat auth default: mechanisms: plain digest-md5 cram-md5 passdb: driver: passwd-file args: /usr/local/etc/dovecot-passwd userdb: driver: passwd socket: type: listen master: path: /usr/local/var/run/dovecot/auth-master mode: 384 plugin: expire: Trash 30 Junk 60 expire_dict: proxy::expire fts: squat fts_squat: partial=4 full=6 dict: expire: mysql:/usr/local/etc/dovecot-sql-expire.conf
[root@airframe]:~# cat /usr/local/etc/dovecot-sql-expire.conf driver = mysql connect = host=/var/run/mysql/mysql.sock user=dovecot password=XYZ dbname=dovecot table = expire select_field = when where_field = path username_field = username
[root@airframe]:~# mysql --version mysql Ver 14.12 Distrib 5.0.51, for slackware-linux-gnu (i486) using EditLine wrapper
Any news on this?
Thanks, Thomas
On Sun, 2008-08-31 at 07:22 +0200, Thomas Zajic wrote:
The expire plugin using MySQL as a backend still doesn't work at all here, the table remains empty and doesn't ever get updated (see http://www.dovecot.org/list/dovecot/2008-August/032687.html).
Just tested, worked fine with me.. Are you sure there are no error messages when you're trying to use it? http://wiki.dovecot.org/Logging
plugin: expire: Trash 30 Junk 60
After Dovecot restart when you copy the first message to Trash or Junk, do you see that dict process starts?
[root@airframe]:~# cat /usr/local/etc/dovecot-sql-expire.conf driver = mysql connect = host=/var/run/mysql/mysql.sock user=dovecot password=XYZ dbname=dovecot table = expire select_field = when
How were you able to create a "when" column? I only get syntax error if I try to do that.
My configuration:
connect = host=localhost dbname=test user=tss password=pass table = expire select_field = stamp where_field = path username_field = username
create table expire (path varchar(100) not null, stamp integer not null, primary key(path));
mysql> select * from expire; +-----------+------------+ | path | stamp | +-----------+------------+ | tss/Trash | 1222753145 | +-----------+------------+ 1 row in set (0.00 sec)
The username field isn't necessary since it'll always be NULL. But even if you had it it shouldn't have mattered. You always should have got at least one row added..
- Timo Sirainen, 2008-08-31 07:40
[...] How were you able to create a "when" column? I only get syntax error if I try to do that. [...]
Wow, Timo, you're the man - great catch! 8-) I created the table using phpMyAdmin, which didn't seem to mind that column name. Now I changed it to "timestamp", and lo and behold:
[root@airframe]:~# mysql -p dovecot Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2813 Server version: 5.0.51 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select * from expire; +----------+-------------------+------------+ | username | path | timestamp | +----------+-------------------+------------+ | | zlatko-mail/Trash | 1222753691 | +----------+-------------------+------------+ 1 row in set (0,00 sec)
mysql>
Thanks a lot, I was just starting to sprinkle the expire plugin source with debugging statements all over the place to see what's going on. :-)
Thanks again, Thomas
On Sun, 2008-08-31 at 07:56 +0200, Thomas Zajic wrote:
- Timo Sirainen, 2008-08-31 07:40
[...] How were you able to create a "when" column? I only get syntax error if I try to do that. [...]
Wow, Timo, you're the man - great catch! 8-) I created the table using phpMyAdmin, which didn't seem to mind that column name. Now I changed it to "timestamp", and lo and behold:
A few days ago I just fixed v1.2 dict sql code to report errors (among other changes), but looks like I hadn't added the same error handling code to v1.1. Added now: http://hg.dovecot.org/dovecot-1.1/rev/81d95749dd3b
On Sun, 31 Aug 2008 08:40:34 +0300 Timo Sirainen tss@iki.fi wrote:
How were you able to create a "when" column? I only get syntax error if I try to do that.
Just FYI, it's possible to use reserved words as column/table names in MySQL by quoting them with backticks, e.g.:
(root@localhost) [test]> CREATE TABLE where
(when
TIMESTAMP);
Query OK, 0 rows affected (0.18 sec)
(root@localhost) [test]> SELECT * FROM where
;
Empty set (0.00 sec)
The quoting isn't standard, though, and varies between DB backends. I
know that MySQL uses backticks (foo
), PostgreSQL uses double quotes
("foo"), and MS's DB products use square brackets ([foo]).
It's probably not worth the trouble to have dovecot escape them as long as it's possible to quote items this way in the config file.
-- Ben Winslow rain@bluecherry.net
It appears so far that the problem I was having with Trash not emptying and other strange random Thunderbird problem with message counts not being right appears to have been fixed.
So far it's working well.
Hi Timo,
Spoke too soon about everything working.
I have some directories that I use to report spam by dragging messages into them. I'm using maildir. Once a minute any message in these directories are cleaned out and deleted.
In Thunderbird if I drag a message into the directory and wait a minute and then click on that directory again the messages should be gone and the message count indicators should show it as empty. And it does work for a while. But after a few hours the messages are gone - but the message count stays the same, as viewed from Thunderbird.
If however I restart dovecot then the message count goes to 0 and everyhing works for a few more hours.
Restarting dovecot fixes the problem. Hope this gives you enought info to find the bug. 1.0.x didn't have this problem.
On Sep 1, 2008, at 6:42 PM, Marc Perkel wrote:
If however I restart dovecot then the message count goes to 0 and
everyhing works for a few more hours.Restarting dovecot fixes the problem. Hope this gives you enought
info to find the bug. 1.0.x didn't have this problem.
I'm pretty sure you get the same result as "restart dovecot" by simply
causing Thunderbird to reconnect to the server. Are you sure the
problem is Dovecot v1.0 vs v1.1 instead of a new Thunderbird version
breaking?
Anyway I can't think of anything that would cause Dovecot to do
something like this. But you could enable rawlog in Dovecot (http://wiki.dovecot.org/Debugging/Rawlog
) and see if Dovecot replies wrong to STATUS commands (or something
else).
participants (4)
-
Ben Winslow
-
Marc Perkel
-
Thomas Zajic
-
Timo Sirainen