View Issue Details

IDProjectCategoryView StatusLast Update
0001749SOGoWeb Mailpublic2016-12-23 15:29
Reporterbuzzdee Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version1.3.14 
Summary0001749: Entering some mail folders makes SOGo eating up all memory in Threaded mail view
Description

This happens with SOGo 1.3.14 (and probably with 1.3.13 too). At least seen on OpenBSD amd64. I have some mail folders with many mails in it (20 or 30 thousand) and when I enter such folder, then when I watch the system with top, I can see it growing in memory. Usually the SOGo instance has something around 20 or 30 MB, but I see it then growing to a couple of houndred MB. Then I have to kill SOGo, before the system becomes unresponsive.

This only seems to happen when I enable the threaded mail list, in "normal" mode, the problem doesn't show up.

Reproducible with gnustep-base 1.22.1, and gnustep-base-1.24.0

Additional Information

Here is a backtrace on amd64, with SOPE/SOGo-1.3.14:

Program received signal SIGINT, Interrupt.
[Switching to process 5901, thread 0x2093b9800]
0x000000020d8606dc in memcpy (dst0=0x224fdd000, src0=Variable "src0" is not available.
) at /usr/src/lib/libc/string/bcopy.c:118
118 /usr/src/lib/libc/string/bcopy.c: No such file or directory.
in /usr/src/lib/libc/string/bcopy.c
(gdb) bt
#0 0x000000020d8606dc in memcpy (dst0=0x224fdd000, src0=Variable "src0" is not available.
) at /usr/src/lib/libc/string/bcopy.c:118
0000001 0x000000020d85f760 in realloc (ptr=0x201777000, size=168632) at /usr/src/lib/libc/stdlib/malloc.c:1330
0000002 0x00000002083dcf98 in default_realloc (zone=Variable "zone" is not available.
) at NSZone.m:149
0000003 0x000000020824123f in -[GSMutableArray addObject:] (self=0x208b8ecd0, _cmd=Variable "_cmd" is not available.
) at GSArray.m:461
0000004 0x00000002082f8ce2 in -[NSEnumerator allObjects] (self=0x208b8e290, _cmd=Variable "_cmd" is not available.
) at NSEnumerator.m:64
0000005 0x000000021a02683b in -[UIxMailListActions threadedUIDs:] (self=Variable "self" is not available.
) at UIxMailListActions.m:562
0000006 0x000000021a027ae1 in -[UIxMailListActions getUIDsInFolder:withHeaders:] (self=0x20318a210, _cmd=Variable "_cmd" is not available.
) at UIxMailListActions.m:660
0000007 0x000000021a0248b3 in -[UIxMailListActions getUIDsAction] (self=Variable "self" is not available.
) at UIxMailListActions.m:696
0000008 0x00000002067383ad in -[SoActionInvocation callOnObject:withPositionalParametersWhenNotNil:inContext:] (self=0x20d004750, _cmd=Variable "_cmd" is not available.
)
at SoActionInvocation.m:300
0000009 0x0000000206733981 in -[SoObjectMethodDispatcher dispatchInContext:] (self=0x20146d850, _cmd=Variable "_cmd" is not available.
) at SoObjectMethodDispatcher.m:191
0000010 0x000000020673576c in -[SoObjectRequestHandler handleRequest:inContext:session:application:] (self=0x209f95b90, _cmd=Variable "_cmd" is not available.
)
at SoObjectRequestHandler.m:591
0000011 0x00000002066c38a9 in -[WORequestHandler handleRequest:] (self=Variable "self" is not available.
) at WORequestHandler.m:241
0000012 0x000000020668802c in -[WOCoreApplication dispatchRequest:usingHandler:] (self=0x20b1b7110, _cmd=Variable "_cmd" is not available.
) at WOCoreApplication.m:709
0000013 0x00000000004036b2 in -[SOGo dispatchRequest:] (self=0x20b1b7110, _cmd=Variable "_cmd" is not available.
) at SOGo.m:451
0000014 0x000000020672455d in -[WOHttpTransaction _run] (self=0x2072b0d90, _cmd=Variable "_cmd" is not available.
) at WOHttpTransaction.m:581
0000015 0x0000000206727151 in -[WOHttpTransaction run] (self=0x2072b0d90, _cmd=Variable "_cmd" is not available.
) at WOHttpTransaction.m:634
0000016 0x0000000206721689 in -[WOHttpAdaptor runConnection:] (self=0x204beb090, _cmd=Variable "_cmd" is not available.
) at WOHttpAdaptor.m:374
0000017 0x0000000206722f6c in -[WOHttpAdaptor _handleAcceptedConnection:] (self=0x204beb090, _cmd=Variable "_cmd" is not available.
) at WOHttpAdaptor.m:408
0000018 0x0000000206722be6 in -[WOHttpAdaptor _handleConnection:] (self=0x204beb090, _cmd=Variable "_cmd" is not available.
) at WOHttpAdaptor.m:467
0000019 0x000000020672311c in -[WOHttpAdaptor acceptConnection:] (self=Variable "self" is not available.
) at WOHttpAdaptor.m:528
0000020 0x0000000208334886 in -[NSNotificationCenter _postAndRelease:] (self=0x203a50eb0, _cmd=Variable "_cmd" is not available.
) at NSNotificationCenter.m:1162
0000021 0x0000000208434cb1 in -[GSRunLoopCtxt pollUntil:within:] (self=0x204f6d010, _cmd=Variable "_cmd" is not available.
) at GSRunLoopCtxt.m:633
0000022 0x000000020837e5b7 in -[NSRunLoop acceptInputForMode:beforeDate:] (self=0x209d4c790, _cmd=0x2087a90f0, mode=0x2087a9180,
limit_date=0x20b1990d0) at NSRunLoop.m:1198
0000023 0x000000020837ca1b in -[NSRunLoop runMode:beforeDate:] (self=0x209d4c790, _cmd=0x206988470, mode=0x2087a9180, date=0x2014fb490)
at NSRunLoop.m:1266
0000024 0x00000002066888b7 in -[WOCoreApplication run] (self=Variable "self" is not available.
) at WOCoreApplication.m:581
0000025 0x0000000000402aaf in -[SOGo run] (self=0x20b1b7110, _cmd=Variable "_cmd" is not available.
) at SOGo.m:275
0000026 0x00000002066af715 in WOApplicationMain (_appClassName=0x6071a0, argc=Variable "argc" is not available.
) at WOApplicationMain.m:42
0000027 0x00000002066cd393 in WOWatchDogApplicationMain (appName=0x6071a0, argc=7, argv=0x7f7ffffce060) at WOWatchDogApplicationMain.m:1026
0000028 0x0000000000401e25 in gnustep_base_user_main (argc=7, argv=0x7f7ffffce060, env=Variable "env" is not available.
) at sogod.m:53
0000029 0x0000000000401b61 in ___start ()
0000030 0x0000000000000007 in ?? ()
0000031 0x00007f7ffffce190 in ?? ()
0000032 0x00007f7ffffce1a6 in ?? ()
0000033 0x00007f7ffffce1b5 in ?? ()
0000034 0x00007f7ffffce1b8 in ?? ()
0000035 0x00007f7ffffce1c3 in ?? ()
0000036 0x00007f7ffffce1c5 in ?? ()
0000037 0x00007f7ffffce1d1 in ?? ()
0000038 0x0000000000000000 in ?? ()

TagsNo tags attached.

Activities

ludovic

ludovic

2012-05-22 17:39

administrator   ~0003946

Try to wrap the two tight loops in -threadedUIDs: in an autorelease pool.

buzzdee

buzzdee

2012-05-23 07:36

reporter   ~0003964

I'm not sure where to put the autorelease pool thingie. This is something I'm not yet fully understand ;)

What I noticed, for example I can safely browse my inbox with mail threads enabled. There I have a lot of mails (about 7000), some within a thread, many don't.
But when I go to a folder with also many mails, like the OpenBSD ports changes, or src changes tracker (both with about 30000 mails in it), there all mails have the same Subject.
I did not yet figured out, where SOGo decides what mail belongs to a thread or not, so whether it takes the subject into account or not.

maybe this gives a hint.

ludovic

ludovic

2012-05-31 18:02

administrator   ~0003993

Would it be possible for you to export the OpenBSD ports mailbox as a standard "mbox" file and attach it to this ticket? The thread is probably enormous and that's what consuming so much time and memory.

buzzdee

buzzdee

2012-06-01 17:40

reporter   ~0004006

I just copied the folder via Thunderbird into a local folder. The folder file, and the corresponding .msf file, if needed are in the tarball. The file was too large to be uploaded here, therefore I put it up on my web server:

https://www.l00-bugdead-prods.de/cvs-changes.tar.gz

sebastian

Issue History

Date Modified Username Field Change
2012-03-31 09:34 buzzdee New Issue
2012-05-22 17:39 ludovic Note Added: 0003946
2012-05-23 07:36 buzzdee Note Added: 0003964
2012-05-31 18:02 ludovic Note Added: 0003993
2012-06-01 17:40 buzzdee Note Added: 0004006
2016-12-23 15:29 ludovic Severity major => minor