While investigating why some messages are stuck in Wallace queue I noticed:
2017-07-20 05:35:11,275 pykolab.wallace ERROR Unknown error occurred; readonly('Other Users/smith/Calendar is not writable',)
2017-07-20 05:35:11,276 pykolab.wallace ERROR Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/wallace/modules.py", line 118, in execute
return modules[name]['function'](*args, **kw)
File "/usr/lib/python2.7/site-packages/wallace/module_invitationpolicy.py", line 367, in execute
done = processor_func(itip_event, policy, recipient_email, sender_email, receiving_user)
File "/usr/lib/python2.7/site-packages/wallace/module_invitationpolicy.py", line 599, in process_itip_reply
propagate_changes_to_attendees_accounts(existing, updated_attendees)
File "/usr/lib/python2.7/site-packages/wallace/module_invitationpolicy.py", line 1377, in propagate_changes_to_attendees_accounts
(attendee_object, master_object) = find_existing_object(object.uid, object.type, recurrence_id, attendee_user, True) # does IMAP authenticate
File "/usr/lib/python2.7/site-packages/wallace/module_invitationpolicy.py", line 847, in find_existing_object
imap.imap.m.select(imap.folder_utf7(folder))
File "/usr/lib64/python2.7/imaplib.py", line 671, in select
raise self.readonly('%s is not writable' % mailbox)
readonly: Other Users/smith/Calendar is not writableGoing along with code excution path:
File "/usr/lib/python2.7/site-packages/wallace/module_invitationpolicy.py", function find_existing_object has the following comment:
def find_existing_object(uid, type, recurrence_id, user_rec, lock=False):
"""
Search user's private folders for the given object (by UID+type)
"""
.....but the error clearly indicates that the folder is not users personal / private folder, but shared to the user by the other user.
Moving further, function list_user_folders is defined as:
def list_user_folders(user_rec, type):
"""
Get a list of the given user's private calendar/tasks folders
"""and part of this function looks like:
for folder in folders:
# exclude shared and other user's namespace
if ns_other is not None and folder.startswith(ns_other) and '_delegated_mailboxes' in user_rec:
# allow shared folders from delegators
if len([_mailbox for _mailbox in user_rec['_delegated_mailboxes'] if folder.startswith(ns_other + _mailbox + '/')]) == 0:
continue
# TODO: list shared folders the user has write privileges ?
if ns_shared is not None and len([_ns for _ns in ns_shared if folder.startswith(_ns)]) > 0:
continueI'm not sure yet what _delegated_mailboxes is in this case, but first of all it looks to me that function list_user_folders gets not just private folders, but also other users folders and that leads to wallace to stop on error and email never leaves wallace queue.
Other information:
# kolab lam user/smith/Calendar@domain.tld Folder user/smith/Calendar@domain.tld lr anyone lrswipkxtecdan smith@domain.tld lr anonymous
wallace-0.8.7-1.1.el7.kolab_16.noarch