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

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



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