Re: [Dovecot] Ambiguous behavior with prefetch database?

2013-07-13 Thread Axel Luttgens
Le 12 juil. 2013 à 22:18, Axel Luttgens a écrit :

 [...]
 I hope I'll have the opportunity to try it tomorrow.
 [...]

I've applied changesets 9091d0f2d971 and 2be295a0b64f (both were needed) to a 
clean 2.2.4 source, and it seems to yield the expected results now.

Nice to be able to keep configs clean thanks to an enhanced consistency.

Thank you very much,
Axel



Re: [Dovecot] Ambiguous behavior with prefetch database?

2013-07-12 Thread Axel Luttgens
Le 12 juil. 2013 à 01:44, Timo Sirainen a écrit :

 [...]
 
 Here: http://hg.dovecot.org/dovecot-2.2/rev/2be295a0b64f

Hello Timo,

I hope I'll have the opportunity to try it tomorrow.
In the meantime, thanks again for your care,
Axel




Re: [Dovecot] Ambiguous behavior with prefetch database?

2013-07-11 Thread Timo Sirainen
On Wed, 2013-07-10 at 11:38 +0200, Axel Luttgens wrote:
 Le 10 juil. 2013 à 04:37, Timo Sirainen a écrit :
 
  Fixed: http://hg.dovecot.org/dovecot-2.2/rev/9091d0f2d971
  
  And for LDAP: http://hg.dovecot.org/dovecot-2.2/rev/939aa051e3f1
 
 Hello Timo,
 
 Many thanks for having taken the pain to have a look at this.
 (BTW, when do you sleep?)
 
 I've tried the patch for sql, on an otherwise unpatched 2.2.4.
 And it unfortunately doesn't seem to yield the expected results: I still need 
 the AS userdb_uid workaround.
 
 May I somehow be useful by trying something else here?

Here: http://hg.dovecot.org/dovecot-2.2/rev/2be295a0b64f




Re: [Dovecot] Ambiguous behavior with prefetch database?

2013-07-10 Thread Axel Luttgens
Le 10 juil. 2013 à 04:37, Timo Sirainen a écrit :

 Fixed: http://hg.dovecot.org/dovecot-2.2/rev/9091d0f2d971
 
 And for LDAP: http://hg.dovecot.org/dovecot-2.2/rev/939aa051e3f1

Hello Timo,

Many thanks for having taken the pain to have a look at this.
(BTW, when do you sleep?)

I've tried the patch for sql, on an otherwise unpatched 2.2.4.
And it unfortunately doesn't seem to yield the expected results: I still need 
the AS userdb_uid workaround.

May I somehow be useful by trying something else here?

Best Regards,
Axel



Re: [Dovecot] Ambiguous behavior with prefetch database?

2013-07-09 Thread Timo Sirainen
Fixed: http://hg.dovecot.org/dovecot-2.2/rev/9091d0f2d971

And for LDAP: http://hg.dovecot.org/dovecot-2.2/rev/939aa051e3f1

On 6.7.2013, at 1.18, Axel Luttgens axelluttg...@swing.be wrote:

 Hello,
 
 Let's say dovecot.conf contains:
 
   mail_uid= dovemailer
   mail_gid= dovemailer
   mail_home   = /some/path/%n
   mail_location   = mbox:~/mboxes:INBOX=~/mboxes/inbox
 
 and that the password database query is of the form:
 
   password_query = \
   SELECT \
   passwd AS password, \
   nickname AS user, \
   mail_home AS userdb_home, \
   mail_location AS userdb_mail, \
   WHERE \
   ...
 
 The database initially comes with NULL for both mail_home and mail_location, 
 the goal being to be able to progressively replace legacy settings.
 
 With the above, one gets such entries in the logs upon a pop or imap 
 connection:
 
   auth-worker(11262): Debug: auth(u12345678,127.0.0.1): username changed 
 u12345678 - john.doe
   auth: Debug: auth(u12345678,127.0.0.1,dsNsasbgRQB/AAAB): username 
 changed u12345678 - john.doe
   [...]
   auth: Debug: prefetch(john.doe,127.0.0.1,dsNsasbgRQB/AAAB): passdb 
 didn't return userdb entries, trying the next userdb
 
 and, of course, the userdb_query fails since it isn't supposed to be invoked 
 under such circumstances.
 
 Of course, the userdb_query could be adapted so as to handle pop/imap 
 connections in addition to say, lmtp or doveadm connections, but this would 
 anyway raise the question: why bother with a prefetch database setup?
 
 In fact, it seems that the problem comes from the fact that the 
 password_query returns NULL values (i.e. do not override dovecot.conf 
 settings) for all userdb_xxx settings even if, technically speaking, it 
 returns such columns.
 
 A slight yet somewhat silly modification of the password_query, such as this 
 one:
 
   password_query = \
   SELECT \
   passwd AS password, \
   nickname AS user, \
   'dovemailer' AS userdb_uid, \
   mail_home AS userdb_home, \
   mail_location AS userdb_mail, \
   WHERE \
   ...
 
 indeed seems to bring back all the expected behavior: now, the passdb 
 returns userdb entries and, for example, the config's mail_home expands to 
 the expected value /some/path/john.doe.
 
 Could it be that the case userdb_xxx columns returned, even if all with NULL 
 values has been somehow overlooked in the code?
 Or am I erring with my interpetation of all those matters?
 
 TIA,
 Axel
 



[Dovecot] Ambiguous behavior with prefetch database?

2013-07-05 Thread Axel Luttgens
Hello,

Let's say dovecot.conf contains:

mail_uid= dovemailer
mail_gid= dovemailer
mail_home   = /some/path/%n
mail_location   = mbox:~/mboxes:INBOX=~/mboxes/inbox

and that the password database query is of the form:

password_query = \
SELECT \
passwd AS password, \
nickname AS user, \
mail_home AS userdb_home, \
mail_location AS userdb_mail, \
WHERE \
...

The database initially comes with NULL for both mail_home and mail_location, 
the goal being to be able to progressively replace legacy settings.

With the above, one gets such entries in the logs upon a pop or imap connection:

auth-worker(11262): Debug: auth(u12345678,127.0.0.1): username changed 
u12345678 - john.doe
auth: Debug: auth(u12345678,127.0.0.1,dsNsasbgRQB/AAAB): username 
changed u12345678 - john.doe
[...]
auth: Debug: prefetch(john.doe,127.0.0.1,dsNsasbgRQB/AAAB): passdb 
didn't return userdb entries, trying the next userdb

and, of course, the userdb_query fails since it isn't supposed to be invoked 
under such circumstances.

Of course, the userdb_query could be adapted so as to handle pop/imap 
connections in addition to say, lmtp or doveadm connections, but this would 
anyway raise the question: why bother with a prefetch database setup?

In fact, it seems that the problem comes from the fact that the password_query 
returns NULL values (i.e. do not override dovecot.conf settings) for all 
userdb_xxx settings even if, technically speaking, it returns such columns.

A slight yet somewhat silly modification of the password_query, such as this 
one:

password_query = \
SELECT \
passwd AS password, \
nickname AS user, \
'dovemailer' AS userdb_uid, \
mail_home AS userdb_home, \
mail_location AS userdb_mail, \
WHERE \
...

indeed seems to bring back all the expected behavior: now, the passdb returns 
userdb entries and, for example, the config's mail_home expands to the 
expected value /some/path/john.doe.

Could it be that the case userdb_xxx columns returned, even if all with NULL 
values has been somehow overlooked in the code?
Or am I erring with my interpetation of all those matters?

TIA,
Axel