[Openais] [lck 0/7] LCK service patches

Ryan O'Hara rohara at redhat.com
Tue Jun 2 12:59:08 PDT 2009


On Tue, Jun 02, 2009 at 12:12:50PM -0700, Steven Dake wrote:
> On Tue, 2009-06-02 at 14:02 -0500, Ryan O'Hara wrote:
> > On Tue, Jun 02, 2009 at 05:34:02PM +0200, Jan Friesse wrote:
> > > Included are lck service patches. Many of them solves really big
> > > problems (writing to uninitialized memory, testing some variable to
> > > NULL *BEFORE* it is used as a structure, ...)
> > > 
> > > Ryan,
> > > it looks there is some huge problem with calling this sequention:
> > > [DEBUG]: saLckInitialize
> > > [DEBUG]: saLckResourceOpen
> > > [DEBUG]: saLckResourceLock
> > > [DEBUG]: saLckResourceLockAsync
> > > 
> > > And lockAsync will never end. I didn't have time to figure our more
> > > deeply where is problem, so maybe you know, why it happend.
> > 
> > Here is what I discovered.
> > 
> > I wrote a small test program that does this:
> > 
> > saLckInitialize
> > saLckResourceOpen
> > saLckResourceLock
> > saLckResourceLockAsync
> > saLckResourceClose
> > 
> > Both Lock and LockAsync request PR locks, so they will both be
> > granted. I don't see the LockGrantCallback. But if I put a sleep
> > before the Close operation, I will get the callback. That is all I
> > know right now.
> > 
> > Steve, you have any thoughts on this behavior?
> > 
> > 
> 
> Maybe close triggers an ipc disconnect or lock stripping and causes the
> grant callback not to happen.
> 
> I don't believe there is a guarantee in the spec that a grant will
> happen when a resource is closed.  The sleep just gives time for the
> grant to happen before being stripped or ipc_exit_fn'ed...

Yes, I believe this is correct. If the saftest code did a sleep
beforethe process exits, I'm sure we'd see the callback.

> Regards
> -steve
> 
> 
> > 
> > > Jan Friesse (7):
> > >   Remove some warnings
> > >   Sizeof should be structure and not pointer
> > >   Test lockMode values
> > >   Test resourceFlags in saResourceOpen(Async)
> > >   Test validity of handle in *resourceLock(Async)
> > >   Remove some compiler warnings.
> > >   In saLckOptionCheck, test lckOptions to NULL
> > > 
> > >  trunk/include/ipc_lck.h |    2 +-
> > >  trunk/lib/lck.c         |   24 +++++++++++++++
> > >  trunk/services/lck.c    |   75 ++++++++++++++++++++++++++++++----------------
> > >  3 files changed, 74 insertions(+), 27 deletions(-)
> > > 
> > > _______________________________________________
> > > Openais mailing list
> > > Openais at lists.linux-foundation.org
> > > https://lists.linux-foundation.org/mailman/listinfo/openais
> > _______________________________________________
> > Openais mailing list
> > Openais at lists.linux-foundation.org
> > https://lists.linux-foundation.org/mailman/listinfo/openais


More information about the Openais mailing list