delayed expunge and subfolders

Leena Heino Leena.Heino at uta.fi
Tue Oct 17 11:07:32 EDT 2006


> Is delayed expunge supposed to work in subfolders?
>
> I have this in cyrus.conf:
> delprune      cmd="cyr_expire -E 3 -X 2" at=0400
>
> I've understood that this is supposed to mean that if delayed expuge is used 
> and folder annotations does not specify anything else then messages are 
> supposed to be deleted from all folders after two days.

More information. I tried to run the cyr_expire from shell and it 
segfaulted:
$ cyr_expire -E 3 -X 2 -v
expunging deleted messages in mailboxes older than 2 days
Segmentation Fault

(gdb) bt
#0  process_records (mailbox=0xffbff078, newindex=0xe2dd0,
     index_base=0xfeca0000 <Address 0xfeca0000 out of bounds>, exists=21,
     deleted=0xe5b88, numdeleted=0xffbfbed4, quotadeleted=0xffbfbee8,
     numansweredflag=0xffbfbee4, numdeletedflag=0xffbfbee0,
     numflaggedflag=0xffbfbedc, newcache=0xe2dc0,
     new_cache_total_size=0xffbfbed8, expunge_fd=-1, last_offset=0,
     decideproc=0x16e18 <expire_cb>, deciderock=0xffbffd58,
     expunge_flags=2) at mailbox.c:1930
#1  0x0001ad08 in mailbox_expunge (mailbox=0xffbff078,
     decideproc=0x16e18 <expire_cb>, deciderock=0xffbffd58, flags=-4210808)
     at mailbox.c:2306
#2  0x000170c8 in expire (name=0xffbff5d8 "user.atmaso",
     matchlen=-4197520,
     maycreate=1, rock=0xffbffd58) at cyr_expire.c:224
#3  0x0002034c in find_cb (rockp=0xffbffca8,
     key=0xfc89b330 <Address 0xfc89b330 out of bounds>, keylen=11,
     data=0xfc89b340 <Address 0xfc89b340 out of bounds>, datalen=37)
     at mboxlist.c:1973
#4  0x00039d24 in myforeach (db=0xe4ad8, prefix=0xffbff8c8 "*",
     prefixlen=0,
     goodp=0x1ffbc <find_p>, cb=0x20268 <find_cb>, rock=0xffbffca8,
     tid=0x0) at cyrusdb_skiplist.c:996
#5  0x00020944 in mboxlist_findall (namespace=0x0, pattern=0xffbffd88 "*",
     isadmin=1, userid=0x0, auth_state=0xffbff8c8, proc=0, rock=0xffbffca8)
     at mboxlist.c:2165
#6  0x000173f8 in main (argc=6, argv=0xffbffe64) at cyr_expire.c:310


mailbox.c:1930
   1927              /* Compute size of this record */
   1928              cacheitembegin = cacheitem = mailbox->cache_base + 
cache_offset;
   1929              for (cache_ent = 0; cache_ent < NUM_CACHE_FIELDS; 
cache_ent++) {
   1930                  cacheitem = CACHE_ITEM_NEXT(cacheitem);
   1931              }
   1932              cache_record_size = (cacheitem - cacheitembegin);
   1933              *new_cache_total_size += cache_record_size;
   1934
   1935              /* fwrite will automatically call write() in a sane 
way */

-- 
   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