delayed expunge and subfolders
Leena Heino
Leena.Heino at uta.fi
Fri Oct 20 12:08:38 EDT 2006
In the cyrus.cache file there are always 10 cache fields per message. But
what could cause this code in mailbox.c to fail in the middle of skipping
over those fields:
/* Compute size of this record */
cacheitembegin = cacheitem = mailbox->cache_base + cache_offset;
for (cache_ent = 0; cache_ent < NUM_CACHE_FIELDS; cache_ent++) {
cacheitem = CACHE_ITEM_NEXT(cacheitem);
}
I see this failure when I try to use cyr_expire with -X 1 or with any
number greater than zero.
(gdb) frame 0
#0 process_records (mailbox=0xffbff080, newindex=0xe30a8,
index_base=0xfecd0000 <Address 0xfecd0000 out of bounds>, exists=29,
deleted=0x2eb77c0, numdeleted=0xffbfbedc, quotadeleted=0xffbfbef0,
numansweredflag=0xffbfbeec, numdeletedflag=0xffbfbee8,
numflaggedflag=0xffbfbee4, newcache=0xe3098,
new_cache_total_size=0xffbfbee0, expunge_fd=-1, last_offset=0,
decideproc=0x16e18 <expire_cb>, deciderock=0xffbffd60,
expunge_flags=2) at mailbox.c:1930
(gdb) p cache_ent
$1 = 8
OS: Solaris 9/Sparc
CC: Gcc 3.4.5
Cyrus: 2.3.7
--
Leena Heino University of Tampere / Computer Centre
( liinu at uta.fi ) ( http://www.uta.fi/laitokset/tkk )
More information about the Info-cyrus
mailing list