[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#4184) Lockup when moding one particular entry



Pierangelo Masarati wrote:

>On Fri, 2005-12-16 at 17:16 +0000, ando@sys-net.it wrote:
>  
>
>>On Fri, 2005-12-16 at 16:32 +0000, ando@sys-net.it wrote:
>>    
>>
>>>On Fri, 2005-12-16 at 16:01 +0000, davidke@whidbey.net wrote:
>>>      
>>>
>>>>I did as you suggested commenting out the set_lg_dir line in the second 
>>>>DB_CONFIG file for the disconnected branch and I still experience the 
>>>>same lockup in the same location.  I even commented out set_lg_dir for 
>>>>both files and still the same issue.  I updated my webpage with the new 
>>>>DB_CONFIG file I am using for the second database.
>>>>        
>>>>
>>>Right, I have reproduced it even without DB_CONFIG.  I'll investigate
>>>further.
>>>      
>>>
>>I think I got it: during the third modification, it gets to call
>>bdb_entry_get() to collect the group entry; unfortunately, this relies
>>on saving some private data in op->o_private, but, note below:
>>
>>334             if( op ) boi = (struct bdb_op_info *) op->o_private;
>>(gdb)
>>335             if( boi != NULL && op->o_bd->be_private == boi->boi_bdb-
>>    
>>
>>>be_private ) {
>>>      
>>>
>>(gdb) p boi
>>$2 = (struct bdb_op_info *) 0x40fff4f0
>>(gdb) p boi[0]
>>$3 = {boi_bdb = 0x903e60, boi_txn = 0x984e00, boi_err = 0, boi_locker =
>>2147483661, boi_acl_cache = 0, boi_locks = 0x0}
>>(gdb) p bdb
>>$4 = (struct bdb_info *) 0x904580
>>(gdb) p op->o_bd
>>$5 = (BackendDB *) 0x9043c0
>>
>>
>>the boi_bdb member of this private data __should__ be equal to op->o_bd,
>>but it was actually set by __another__ database.  This breaks things a
>>bit (I think the wrong database is asked to release a lock it doesn't
>>own; this is not an issue, the real issue is that the lock is not
>>released).
>>
>>Honestly, I don't know how to proceed.  Hope someone else steps in...
>>    
>>
>
>I've just fixed it in a rather inelegant manner in HEAD.  Please check
>(the same test I just posted should do the trick).
>
>p.
>
>
>
>
>
>
>Ing. Pierangelo Masarati
>
>Responsabile Open Solution
>
>
>
>SysNet s.n.c.
>
>Via Dossi, 8 - 27100 Pavia - ITALIA
>
>http://www.sys-net.it
>
>------------------------------------------
>
>Office:   +39.02.23998309          
>
>Mobile:   +39.333.4963172
>
>Email:    pierangelo.masarati@sys-net.it
>
>------------------------------------------
>
>
>
>  
>
I patched backend.c with the changes you made and the problem has been 
resolved.  Thank you for taking the time to work on this and find a 
solution.

-- 
David
Whidbey Telecom Internet and Broadband
System Programmer/Sys Admin