[Dovecot] server is not imap4 compatible

marco ghidinelli marcogh at linux.it
Thu Apr 23 11:53:00 EEST 2009


On Wed, Apr 22, 2009 at 10:25:41AM -0400, Timo Sirainen wrote:
> On Apr 22, 2009, at 4:12 AM, marco ghidinelli wrote:
>
>>>> Apr 20 16:21:17 harlock dovecot: imap-login: Disconnected: Shutting
>>>> down: rip=192.168.0.194, lip=10.70.0.1, TLS handshake
>>>
>>> "Shutting down" means that Dovecot really is being shut down or
>>> restarted. Is this not an expected restart? Does it happen at the  
>>> same
>>> time always? Maybe it's some cron job.
>>
>> no, of course this was NOT an expected restart.
>> i thought that it was a normal disconnection between the client and
>> the server.
>>
>> the "shutting down" messages appeared even on the previous 1.0.rc15
>> version, but not the "server not imap4 compatible" error.
>>
>> or maybe my users didn't tell me.  :)
>>
>> any idea?
>
> My idea is still the same: Client gets unexpectedly disconnected due to 
> Dovecot restart and the client thinks it's not connected to IMAP4  
> server. Try to figure out why Dovecot is getting restarted.

dovecot doesn't restart, and nothing try to restart it.

> It's not doing it alone.

maybe it's not a 'whole' restart, but just it drops some connections.

> Do you see "starting up" lines in logs showing that the 
> whole Dovecot was restarted?

no

> If not, do you see any "killed by signal" 
> lines in logs?

no. i got those lines only when i issue the 
/etc/init.d/postfix {start|restart}
commands.

> Perhaps the whole Dovecot isn't being restarted, but just 
> some buggy script/program is sending SIGTERMs to imap-login processes 
> more or less randomly for some reason..

i looked at the dovecot sources now, and i saw that:

# vi master/login-process.c +738

static int login_group_start_missings(struct login_group *group)
{
        if (group->set->login_process_per_connection &&
            group->processes >= group->set->login_max_processes_count &&
            group->listening_processes == 0) {
                /* destroy the oldest listening process. non-listening
                   processes are logged in users who we don't want to kick out
                   because someone's started flooding */
                if (group->oldest_prelogin_process != NULL &&
                    group->oldest_prelogin_process->initialized)
                        login_process_destroy(group->oldest_prelogin_process);
        }


my login_max_processes_count was 256, and my imap-login process is 
about 240, now i enhanced it to 512.

am i going into the right direction?


More information about the dovecot mailing list