From: SourceForge.net <no...@so...> - 2007-11-26 20:36:00
|
Bugs item #1838961, was opened at 2007-11-26 15:35 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=712784&aid=1838961&group_id=128809 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: sfcb Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Chris Buccella (buccella) Assigned to: Chris Buccella (buccella) Summary: sfcb hangs due to potential deadlock in upcalls Initial Comment: Lets say that a user can do an enumerate instances (ei) on 2 classes, Class X and Class M. Now, lets say that 1. An ei on Class X is implemented by doing an upcall to ei Class Y which in turn does an ei on Class Z. 2. An ei on Class M is implemented by doing an upcall to ei Class N which in turn does an ei on Class O. And, lets say we have 3 providers and they implement the following classes. 1. Provider A (in group A), it implements the classes Class X Class N 2. Provider B (in group B), it implements the classes Class Y Class M 3. Provider C (in group C), it implemenst the classes Class O Class Z Now, we could end up in a scenario where: 1. Class X has acquired the lockUpcall mutex in brokerUpc.c in provider A and is doing an ei on Class Y. 2. Class M has acquired the lockUpcall mutex in brokerUpc.c in provider B and is doing an ei on Class N. 3. Now, Class Y is waiting for the mutex acquired in step 2 above to do an upcall to Class Z 4. And Class N is waiting for the mutex acquired in step 1 above to do an upcall to Class O. In this scenario we seem to hit a deadlock and sfcb hangs forever. (bug found by Mahesh Patil) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=712784&aid=1838961&group_id=128809 |