No guts no glory! So far, so good. The first patch started spewing messages within seconds. I've been running for about twenty minutes with this version and I haven't seen much of anything yet.
I'll report back tomorrow after it has a day to burn in.
It's still a bit buggy. I haven't seen any messages in the last few hours, but then a user just dumped a gigantic 200MB core. Looking at dump it's because of some recursive loop that goes on forever:
#0 0x00002b656f2cba71 in _int_malloc (av=0x2b656f5ab9e0, bytes=368) at malloc.c:4650 iters = <value optimized out> nb = 384 idx = 759448916 bin = <value optimized out> victim = <value optimized out> size = <value optimized out> victim_index = <value optimized out> remainder = <value optimized out> remainder_size = <value optimized out> block = <value optimized out> bit = <value optimized out> map = <value optimized out> fwd = <value optimized out> bck = <value optimized out> #1 0x00002b656f2cd86d in __libc_calloc (n=<value optimized out>, elem_size=<value optimized out>) at malloc.c:4006 av = (struct malloc_state *) 0x2b656f5ab9e0 oldtop = (struct malloc_chunk *) 0x1da94070 p = <value optimized out> bytes = 368 csz = <value optimized out> oldtopsize = 12176 mem = (void *) 0x139cdc40 clearsize = <value optimized out> nclears = <value optimized out> d = <value optimized out> #2 0x00000000004a8ea6 in pool_system_malloc (pool=<value optimized out>, size=368) at mempool-system.c:78 mem = <value optimized out> #3 0x00000000004a4daa in i_stream_create_fd (fd=12, max_buffer_size=4096, autoclose_fd=96) at istream-file.c:156 fstream = <value optimized out> st = {st_dev = 329008600, st_ino = 4452761, st_nlink = 27, st_mode = 799030, st_uid = 0, st_gid = 1, pad0 = 0, st_rdev = 109556025819520, st_size = 11013, st_blksize = 0, st_blocks = 95, st_atim = { tv_sec = 4096, tv_nsec = 8}, st_mtim = {tv_sec = 1264465811, tv_nsec = 499376000}, st_ctim = {tv_sec = 1264465811, tv_nsec = 499378000}, __unused = {1264465811, 499384000, 0}} #4 0x000000000043fba6 in maildir_uidlist_refresh (uidlist=0x139d6ab0) at maildir-uidlist.c:733 retry = 64 ret = -1 #5 0x0000000000440bb5 in maildir_uidlist_update_hdr (uidlist=0x2b656f5ab9e0, st=0x7fffc949d360) at maildir-uidlist.c:382 mhdr = (struct maildir_index_header *) 0x139cdc40 #6 0x000000000043ffff in maildir_uidlist_refresh (uidlist=0x139d6ab0) at maildir-uidlist.c:793 retry = false ret = 1 #7 0x0000000000440bb5 in maildir_uidlist_update_hdr (uidlist=0x2b656f5ab9e0, st=0x7fffc949d4b0) at maildir-uidlist.c:382 mhdr = (struct maildir_index_header *) 0x139cdc40 #8 0x000000000043ffff in maildir_uidlist_refresh (uidlist=0x139d6ab0) at maildir-uidlist.c:793 retry = false ret = 1 #9 0x0000000000440bb5 in maildir_uidlist_update_hdr (uidlist=0x2b656f5ab9e0, st=0x7fffc949d600) at maildir-uidlist.c:382 mhdr = (struct maildir_index_header *) 0x139cdc40 #10 0x000000000043ffff in maildir_uidlist_refresh (uidlist=0x139d6ab0) at maildir-uidlist.c:793 retry = false ret = 1 #11 0x0000000000440bb5 in maildir_uidlist_update_hdr (uidlist=0x2b656f5ab9e0, st=0x7fffc949d750) at maildir-uidlist.c:382 mhdr = (struct maildir_index_header *) 0x139cdc40
...and on and on for thousands of lines. I gave up after 20K. ;)