Hi John,
John Marshall wrote:
Thank you Stephan for looking at this. I have just uninstalled Dovecot 1.1.15 and re-built and installed Dovecot 1.1.16 and the problem is back.
- What is your exact config (i.e. dovecot -n)
# 1.1.16: /usr/local/etc/dovecot.conf # OS: FreeBSD 7.2-RELEASE i386
Nothing strange here. Pretty much the same as what I use for testing.
- Do the logs say anything? Segfault perhaps (signal 11) ?
The logs show successful managesieve-login and then nothing. Considering the fact that you have mail_debug turned on for ManageSieve, you should have seen something like the following:
Jun 21 12:07:35 host dovecot: managesieve-login: Login: user=<test>, method=PLAIN, rip=<ip>, lip=<ip>, TLS Jun 21 12:07:35 host dovecot: MANAGESIEVE(test): Effective uid=2002, gid=2002, home=/home/test Jun 21 12:07:35 host dovecot: MANAGESIEVE(test): sieve-storage: using active sieve script path: ~/.dovecot.sieve Jun 21 12:07:35 host dovecot: MANAGESIEVE(test): sieve-storage: using active sieve script path: ~/.dovecot.sieve Jun 21 12:07:35 host dovecot: MANAGESIEVE(test): sieve-storage: using sieve script storage directory: ~/sieve Jun 21 12:07:35 host dovecot: MANAGESIEVE(test): sieve-storage: relative path to sieve storage in active link: sieve/
This suggests that the managesieve daemon fails to start or that somehow debug is not turned on after all.
- Could you provide (an anonymized version of) the script you are trying to upload? (Make sure the version you send me is problematic as well)
The problem is not uploading. The problem is downloading. If I copy my sieve script to my client (by other means) I can upload it fine. The problem is that the client cannot retrieve it from the server for editing if it is bigger than 8kB. Here is a sample "problem" script:
# This is a sieve script file full of comments <--- snip (above line repeated 200 times) ---> keep;
If I lose 26 of those 200 comment lines then I can download as well as upload the script. Somehow, this works here without incident.
If it truly does hang at some point, you could use the strace tool to get an idea what it the managesieve daemon doing at that time. If you are not using TLS, you can use the ngrep tool to capture the TCP traffic between client and server. That may also prove useful.
It doesn't "hang". The script edit window pops up empty and 30 seconds later I see pop-up dialogue box: window title is "Alert"; Text is "A Timeout occured". I click OK to acknowledge the timeout and then I can enter/upload a large or small script or import/edit/upload a large or small script.
I don't have ngrep but if you can suggest a useful incantation for tcpdump I can provide that for you. You could obtain ngrep from FreeBSD Ports. I've never managed to do the same with tcpdump.
To take your client out of the equation, you could also manually login to managesieve using telnet or netcat. Just follow the instructions of the Troubleshooting section of http://wiki.dovecot.org/ManageSieve and apply the GETSCRIPT command on your large script. This way, you can directly see what the server is doing and you can make a transcript without sniffing the traffic.
Regards,
-- Stephan Bosch stephan@rename-it.nl