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 > > > [email protected] > > > https://lists.linux-foundation.org/mailman/listinfo/openais > > _______________________________________________ > > Openais mailing list > > [email protected] > > https://lists.linux-foundation.org/mailman/listinfo/openais _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
