buffindexed, a racing problem?

Alex Kiernan alexk at demon.net
Tue Jan 21 08:58:03 UTC 2003


"Kiernan, Alex" <alexk at demon.net> writes:

> > 3. Dec 18 00:39:47 expireover[4889] group 1379 allocated the 
> > block (0,105633).
> > 
> > and at almost the same time,
> > 
> > 4. Dec 18 00:39:47 yfs innd: buffindexed: 0x00007aa7 trying to occupy
> >         new block(0, 105633), but already occupied
> > 
> > Isn't it a racing problem?
> 
> Could this be fcntl(F_SETLKW) returning with EINTR? It looks to me like
> inn_lock_range will return in this instance without acquiring the write lock
> - I've spent an hour or so staring a ovblocknew() to see if I could see any
> holes and this is all I can come up with.
> 

Different question... could/should we sysdie() on return from
fcntl(F_SETLKW) if we fail?

It'd break some people (me in particular), but it looks a lot safer
since all callers assume it just works.

-- 
Alex Kiernan, Principal Engineer, Development, THUS plc


More information about the inn-workers mailing list