I just tried this patch, and everything compile fine.
I wiped out my installation and mailbox partitions and started from
scratch with this new version. I ran into another problem right away.
When trying to do various cyradm operations, set ACL's and Deleting mailboxes, cyradm will just hang. No errors, but it looks
like imapd just hangs, and the load on my box skyrockets until I stop and restart master. Simon, did you try to install this version fresh?
Using RH 7.3 here.


Thanks.
AJ

Simon Matter wrote:

On Mon, 24 May 2004, Simon Matter wrote:


The backtrace is from RedHat 7.2 running ext3. Nothing special here.
Switching back to 2.2.3 made it work again and I also don't see any
corruption.

Are the backtraces and straces consistent in their content?

Here is an ltrace in case this helps:

[snip]

Ok, the problem seems to be that we're deleteing elements of the hash
table in the middle of a call to hash_enumerate.

This isn't terribly good, but atleast I understand why its intermittant
and why Ken and I probably can't reproduce it (we're lucky).

Can one of you try this patch to hash.c?


Thanks! A quick test showed no problems so far. I'll do some more testing
later today.

Simon


Index: hash.c
===================================================================
RCS file: /afs/andrew.cmu.edu/system/cvs/src/cyrus/lib/hash.c,v
retrieving revision 1.11
diff -u -r1.11 hash.c
--- hash.c      22 Oct 2003 18:50:12 -0000      1.11
+++ hash.c      24 May 2004 13:57:06 -0000
@@ -300,7 +300,7 @@
                    void *rock)
 {
       unsigned i;
-      bucket *temp;
+      bucket *temp, *temp_next;

       for (i=0;i<table->size; i++)
       {
@@ -308,8 +308,9 @@
             {
                   for (temp = (table->table)[i];
                         NULL != temp;
-                        temp = temp -> next)
+                        temp = temp_next)
                   {
+                       temp_next = temp->next;
                         func(temp -> key, temp->data, rock);
                   }
             }


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456 Research Systems Programmer * /usr/contributed Gatekeeper




---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to