Paul J Stevens wrote:
First bug found with the testsuite I'm building using python
(unittest+imaputil).
Nice!
More trouble in _ic_list I think:
as testuser1:
A01 login "testuser1" "testpw"
A01 create "testaclbox"
A01 setacl "testaclbox" "testuser2" "slarw"
A01 logout
next :
A02 login "testuser2" "testpw"
A02 list "" *
this now barfs with an internal dbase error when trying to select
mailbox_idnr = 0; which doesn't exist at all.
Trace:
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: arg[1]: '*'
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: IMAPClientHandler():
Executing command list...
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: ic_list(): build the
pattern: [^.*$]
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: dbmysql.c,db_query:
executing query [SELECT mbx.name, mbx.mailbox_idnr, mbx.owner_idnr FROM
mailboxes mbx LEFT JOIN acl ON mbx.mailbox_idnr = acl.mailbox_id WHERE
(acl.user_id = '14' AND acl.lookup_flag = '1') OR mbx.owner_idnr = '14']
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: dbmysql.c,db_query:
executing query [SELECT userid FROM users WHERE user_idnr = '13']
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: authsql.c,auth_get_userid:
query_result = testuser1
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: authsql.c,auth_get_userid:
returning testuser1 as returnid
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
misc.c,mailbox_add_namespace: owner name = testuser1
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
misc.c,mailbox_add_namespace: returning fully qualified name
[#Users/testuser1/testaclbox]
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: comparing mailbox
[#Users/testuser1/testaclbox] to regular expression
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: regex match #Users/testuser1/testaclbox
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: comparing mailbox [INBOX] to regular
expression
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: regex match INBOX
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: comparing mailbox [testbox] to regular
expression
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_list_mailboxes_by_regex: regex match testbox
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]:
db.c,db_findmailbox_by_regex: found [3] mailboxes
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: dbmysql.c,db_query:
executing query [SELECT owner_idnr FROM mailboxes WHERE mailbox_idnr = '0']
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: dbmysql.c, db_get_result:
row = 0, field = 0, bigger than size of result set
Mar 23 14:45:21 tsuki dbmail/imap4d[17524]: db.c,db_getmailboxname:
error checking ownership of mailbox
Strange... I haven't succeeded in reproducing this error.
Somehow an mboxid of 0 was returned instead of an mboxid of > 0
can you run the query above:
SELECT mbx.name, mbx.mailbox_idnr, mbx.owner_idnr FROM
mailboxes mbx LEFT JOIN acl ON mbx.mailbox_idnr = acl.mailbox_id WHERE
(acl.user_id = '14' AND acl.lookup_flag = '1') OR mbx.owner_idnr = '14'
and check what the output is?
I'm currently at a loss here, especially since I cannot reproduce the
problem.
Ilja