Problem w/ 2.2.4 and unixhierarchysep: yes

AJ aj at mindcrash.com
Mon May 24 19:52:27 EDT 2004


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




More information about the Info-cyrus mailing list