[jira] [Commented] (FELIX-3000) Move sending service registered event out of bundle lock

2011-06-16 Thread Richard S. Hall (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13050526#comment-13050526
 ] 

Richard S. Hall commented on FELIX-3000:


I was thinking something similar, but I was thinking about eliminating the 
callbacks object altogether. I just need to make sure it makes sense from a 
design and compliance perspective.

 Move sending service registered event out of bundle lock
 

 Key: FELIX-3000
 URL: https://issues.apache.org/jira/browse/FELIX-3000
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-3.0.7, framework-3.2.2
Reporter: Felix Meschberger
 Fix For: framework-4.0.0

 Attachments: FELIX-3000-stacktrace.txt, FELIX-3000.patch


 We have a strange situation on a Framework 3.0.7 based system here which is 
 not reproducible on all platforms.
 We can track down a system freeze/deadlock to three threads all contending 
 for bundle locks and the global lock. See attached FELIX-3000-stacktrace.txt 
 for the stack trace.
 Looking at the Framework source, particularly acquireBundleLock and 
 acquireGlobalLock I cannot see where this deadlock can occur.
 The only hint I have is a note in the Felix.registerService:
  // TODO: CONCURRENCY - Reconsider firing event here, outside of the
  // bundle lock.
 I wonder whether this situation can be fixed with moving the service 
 registration event ?
 Looking at the code it seems to have not been changed. Thus I report this 
 against 3.0.7 where we saw this and 3.2.2 being the latest release.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (FELIX-3000) Move sending service registered event out of bundle lock

2011-06-16 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13050564#comment-13050564
 ] 

Felix Meschberger commented on FELIX-3000:
--

@Callbacks: Yes, I didn't go the route of removing that. If I see it correctly, 
this has been introduced as a bridge for the ServiceRegistry to call the 
framework's private fireServiceEvent method, right ? Altough it looks a bit 
heavy-lifting it kind of makes sense (and probably also simplifies testing ?)

@framework 4.0: what would be the timeframe for this ? We currently have this 
change under test and expect some results towards end of June at which time we 
would have to have a fix. I would like to prevent branching.

 Move sending service registered event out of bundle lock
 

 Key: FELIX-3000
 URL: https://issues.apache.org/jira/browse/FELIX-3000
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-3.0.7, framework-3.2.2
Reporter: Felix Meschberger
 Fix For: framework-4.0.0

 Attachments: FELIX-3000-stacktrace.txt, FELIX-3000.patch


 We have a strange situation on a Framework 3.0.7 based system here which is 
 not reproducible on all platforms.
 We can track down a system freeze/deadlock to three threads all contending 
 for bundle locks and the global lock. See attached FELIX-3000-stacktrace.txt 
 for the stack trace.
 Looking at the Framework source, particularly acquireBundleLock and 
 acquireGlobalLock I cannot see where this deadlock can occur.
 The only hint I have is a note in the Felix.registerService:
  // TODO: CONCURRENCY - Reconsider firing event here, outside of the
  // bundle lock.
 I wonder whether this situation can be fixed with moving the service 
 registration event ?
 Looking at the code it seems to have not been changed. Thus I report this 
 against 3.0.7 where we saw this and 3.2.2 being the latest release.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (FELIX-3000) Move sending service registered event out of bundle lock

2011-06-16 Thread Richard S. Hall (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13050565#comment-13050565
 ] 

Richard S. Hall commented on FELIX-3000:


Regarding Callbacks, original the service registry used a full-blown listener 
pattern, but this seemed overkill since the framework was the only listener, 
thus I replaced that with a single callbacks object. What we are essentially 
proposing is to remove any notion of events from the service registry and 
handle them completely externally. I think the tricky one is unregister.

Regarding 4.0, I don't think it will be done until end of July at the earliest. 
Branching is not a big deal, really, we just create a branch from the 3.2.2 
tag, apply the fix, do a release, remove the branch. So, if we have to go that 
route, then no big deal. It only becomes more difficult if there are a lot of 
other issues to port over from trunk to the branch...but we could only include 
this one issue.

 Move sending service registered event out of bundle lock
 

 Key: FELIX-3000
 URL: https://issues.apache.org/jira/browse/FELIX-3000
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-3.0.7, framework-3.2.2
Reporter: Felix Meschberger
 Fix For: framework-4.0.0

 Attachments: FELIX-3000-stacktrace.txt, FELIX-3000.patch


 We have a strange situation on a Framework 3.0.7 based system here which is 
 not reproducible on all platforms.
 We can track down a system freeze/deadlock to three threads all contending 
 for bundle locks and the global lock. See attached FELIX-3000-stacktrace.txt 
 for the stack trace.
 Looking at the Framework source, particularly acquireBundleLock and 
 acquireGlobalLock I cannot see where this deadlock can occur.
 The only hint I have is a note in the Felix.registerService:
  // TODO: CONCURRENCY - Reconsider firing event here, outside of the
  // bundle lock.
 I wonder whether this situation can be fixed with moving the service 
 registration event ?
 Looking at the code it seems to have not been changed. Thus I report this 
 against 3.0.7 where we saw this and 3.2.2 being the latest release.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (FELIX-3000) Move sending service registered event out of bundle lock

2011-06-16 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13050573#comment-13050573
 ] 

Felix Meschberger commented on FELIX-3000:
--

@Callbacks: Yes. BTW Just a nitpick, but I think the call to 
((ServiceRegistrationImpl) reg).invalidate(); in the 
unregisterService(Bundle, ServiceReference) method needs not be in the 
synchronized(this) block.

@4.0: Ok, thanks for the info. Lets pick this up again, when we need to ;-)

 Move sending service registered event out of bundle lock
 

 Key: FELIX-3000
 URL: https://issues.apache.org/jira/browse/FELIX-3000
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-3.0.7, framework-3.2.2
Reporter: Felix Meschberger
 Fix For: framework-4.0.0

 Attachments: FELIX-3000-stacktrace.txt, FELIX-3000.patch


 We have a strange situation on a Framework 3.0.7 based system here which is 
 not reproducible on all platforms.
 We can track down a system freeze/deadlock to three threads all contending 
 for bundle locks and the global lock. See attached FELIX-3000-stacktrace.txt 
 for the stack trace.
 Looking at the Framework source, particularly acquireBundleLock and 
 acquireGlobalLock I cannot see where this deadlock can occur.
 The only hint I have is a note in the Felix.registerService:
  // TODO: CONCURRENCY - Reconsider firing event here, outside of the
  // bundle lock.
 I wonder whether this situation can be fixed with moving the service 
 registration event ?
 Looking at the code it seems to have not been changed. Thus I report this 
 against 3.0.7 where we saw this and 3.2.2 being the latest release.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira