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);
 	}
 }

Reply via email to