On Thu, 2012-12-20 at 08:19 +0200, Arthur Titeica wrote: > > > I'm trying to investigate a problem with dovecot/imap dumping core when > > > connecting connecting mith mutt (everything else works). > > > > > > imap(user@domain): Fatal: master: service(imap): child 31752 killed with > > > signal 11 (core dumped) > > > > > > I managed to create a core file and passed that to gdb. The log is here > > > [1]. > > > > > > I hope this helps - please tell me what else would be needed if not. > > > > First of all doveconf -n output would be helpful. > > Here is the config: http://paste.kde.org/628478/83892135/raw/
The attached patch probably fixes the crash. But I'm still wondering a bit if it's the correct fix. There's still something strange why it's crashing with you.. I'll look at this more closely tomorrow. > > The gdb backtrace would have been also a bit more useful with debug symbols. > > I see no debug option in ./configure --help. Would it be enough not to strip > the binaries after the build? Debug symbols are compiled in by default. They're removed only if you strip them.
diff -r 721aba9128b9 src/plugins/quota/quota-storage.c --- a/src/plugins/quota/quota-storage.c Fri Jan 04 05:29:25 2013 +0200 +++ b/src/plugins/quota/quota-storage.c Fri Jan 04 06:56:54 2013 +0200 @@ -520,13 +520,16 @@ struct quota_mailbox_list *qlist; struct quota *quota = NULL; struct quota_root *root; + struct mail_user *quota_user; bool add; - if (QUOTA_USER_CONTEXT(list->ns->user) == NULL) + quota_user = list->ns->owner != NULL ? + list->ns->owner : list->ns->user; + if (QUOTA_USER_CONTEXT(quota_user) == NULL) return; /* see if we have a quota explicitly defined for this namespace */ - quota = quota_get_mail_user_quota(list->ns->user); + quota = quota_get_mail_user_quota(quota_user); root = quota_find_root_for_ns(quota, list->ns); if (root != NULL) root->ns = list->ns; @@ -550,10 +553,6 @@ v->deinit = quota_mailbox_list_deinit; MODULE_CONTEXT_SET(list, quota_mailbox_list_module, qlist); - /* register to owner's quota roots */ - quota = list->ns->owner != NULL ? - quota_get_mail_user_quota(list->ns->owner) : - quota_get_mail_user_quota(list->ns->user); quota_add_user_namespace(quota, list->ns); } }