the problem disappeared when I added 'userdb sql' to configuration(after the userdb prefetch).
Regards, Arvids On Tuesday 11 September 2007 20:04:45 arvids wrote: > Hello, > > it seems that there is some bug in authentication cache code in dovecot > version 1.1.alpha4 - after login attempt with wrong password the correct > password also will fail. > > I can reproduce it very easy: > $telnet 10.10.10.30 110 > +OK Server. <[EMAIL PROTECTED]> > user testuser > +OK > pass pass > +OK Logged in. > quit > +OK Logging out. > Connection closed by foreign host. > $telnet 10.10.10.30 110 > +OK Server. <[EMAIL PROTECTED]> > user testuser > +OK > pass wrongpass > -ERR Authentication failed. > quit > +OK Logging out > Connection closed by foreign host. > $telnet 10.10.10.30 110 > +OK Server. <[EMAIL PROTECTED]> > user testuser > +OK > pass pass > -ERR [IN-USE] Internal login failure. Refer to server log for more > information. Connection closed by foreign host. > > here is debug log: > Sep 11 19:46:39 server2 dovecot: Dovecot v1.1.alpha4 starting up > Sep 11 19:46:40 server2 dovecot: auth-worker(default): mysql: Connected to > /tmp/mysql.sock (mail) Sep 11 19:47:03 server2 dovecot: auth(default): > client in: > AUTH^I1^IPLAIN^Iservice=pop3^Ilip=10.10.10.30^Irip=10.10.10.20^Iresp=AHRlc3 >R1c2VyAHBhc3M= Sep 11 19:47:03 server2 dovecot: auth(default): > cache(testuser,10.10.10.20): miss Sep 11 19:47:03 server2 dovecot: > auth-worker(default): sql(testuser,10.10.10.20): query: SELECT user, > password, home as userdb_home, uid as userdb_uid, gid as userdb_gid FROM > users WHERE user = 'testuser' > Sep 11 19:47:03 server2 dovecot: auth(default): client out: > OK^I1^Iuser=testuser Sep 11 19:47:03 server2 dovecot: auth(default): master > in: REQUEST^I1^I2148^I1 Sep 11 19:47:03 server2 dovecot: auth(default): > prefetch(testuser,10.10.10.20): success Sep 11 19:47:03 server2 dovecot: > auth(default): master out: > USER^I1^Itestuser^Itestuser=^Ihome=/vmail/00/testuser^Iuid=95^Igid=95 Sep > 11 19:47:03 server2 dovecot: pop3-login: Login: user=<testuser>, > method=PLAIN, rip=10.10.10.20, lip=10.10.10.30 Sep 11 19:47:08 server2 > dovecot: POP3(testuser): Disconnected: Logged out top=0/0, retr=0/0, > del=0/0, size=0 Sep 11 19:47:34 server2 dovecot: auth(default): client in: > AUTH^I2^IPLAIN^Iservice=pop3^Ilip=10.10.10.30^Irip=10.10.10.20^Iresp=AHRlc3 >R1c2VyAHdyb25ncGFzcw== Sep 11 19:47:34 server2 dovecot: auth(default): > cache(testuser,10.10.10.20): hit Sep 11 19:47:34 server2 dovecot: > auth(default): cache(testuser,10.10.10.20): Password mismatch Sep 11 > 19:47:34 server2 dovecot: auth(default): cache(testuser,10.10.10.20): > PLAIN(wrongpass) != 'pass' Sep 11 19:47:34 server2 dovecot: > auth-worker(default): sql(testuser,10.10.10.20): query: SELECT user, > password, home as userdb_home, uid as userdb_uid, gid as userdb_gid FROM > users WHERE user = 'testuser' > Sep 11 19:47:34 server2 dovecot: auth-worker(default): > sql(testuser,10.10.10.20): Password mismatch Sep 11 19:47:34 server2 > dovecot: auth-worker(default): sql(testuser,10.10.10.20): PLAIN(wrongpass) > != 'pass' Sep 11 19:47:35 server2 dovecot: auth(default): client out: > FAIL^I2^Iuser=testuser Sep 11 19:47:37 server2 dovecot: pop3-login: Aborted > login: user=<testuser>, method=PLAIN, rip=10.10.10.20, lip=10.10.10.30 Sep > 11 19:47:46 server2 dovecot: auth(default): client in: > AUTH^I3^IPLAIN^Iservice=pop3^Ilip=10.10.10.30^Irip=10.10.10.20^Iresp=AHRlc3 >R1c2VyAHBhc3M= Sep 11 19:47:46 server2 dovecot: auth(default): > cache(testuser,10.10.10.20): hit Sep 11 19:47:46 server2 dovecot: > auth(default): client out: OK^I3^Iuser=testuser Sep 11 19:47:46 server2 > dovecot: auth(default): master in: REQUEST^I2^I2148^I3 Sep 11 19:47:46 > server2 dovecot: auth(default): prefetch(testuser,10.10.10.20): passdb > didn't return userdb entries Sep 11 19:47:46 server2 dovecot: > auth(default): userdb(testuser,10.10.10.20): user not found from userdb Sep > 11 19:47:46 server2 dovecot: auth(default): master out: NOTFOUND^I2 Sep 11 > 19:47:46 server2 dovecot: pop3-login: Internal login failure: > user=<testuser>, method=PLAIN, rip=10.10.10.20, lip=10.10.10.30 > > dovecot -n output: > # 1.1.alpha4: /usr/local/dovecot/etc/dovecot.conf > base_dir: /var/run/dovecot/ > syslog_facility: local0 > protocols: pop3 > ssl_disable: yes > disable_plaintext_auth: no > login_dir: /var/run/dovecot/login > login_executable: /usr/local/dovecot/libexec/dovecot/pop3-login > login_greeting: Server. > login_process_per_connection: no > login_process_size: 64 > verbose_proctitle: yes > first_valid_uid: 95 > first_valid_gid: 95 > mail_uid: 95 > mail_gid: 95 > mail_location: maildir:~/Maildir > fsync_disable: yes > mail_executable: /usr/local/dovecot/libexec/dovecot/pop3 > mail_plugin_dir: /usr/local/dovecot/lib/dovecot/pop3 > pop3_enable_last: yes > pop3_client_workarounds: outlook-no-nuls oe-ns-eoh > auth default: > mechanisms: plain login digest-md5 cram-md5 apop > cache_size: 2048 > cache_ttl: 28800 > cache_negative_ttl: 60 > user: doveauth > verbose: yes > debug: yes > debug_passwords: yes > passdb: > driver: sql > args: /usr/local/dovecot/etc/dovecot-sql.conf > userdb: > driver: prefetch > > > Regards, Arvids