Problem w/ 2.2.4 and unixhierarchysep: yes

Simon Matter simon.matter at ch.sauter-bc.com
Tue May 25 04:04:15 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.

I have tested patched 2.2.4 on my existing servers and also did a fresh
install with success. The tests were done on RedHat 7.2 and 7.3. I didn't
experience any problems.

Simon

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