[ 
https://issues.apache.org/jira/browse/FELIX-4977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14646220#comment-14646220
 ] 

Carsten Ziegeler commented on FELIX-4977:
-----------------------------------------

Added a test case in 1693285 exposing the problem (this test passes with 4.6.1)

> Concurrency issue with factory services
> ---------------------------------------
>
>                 Key: FELIX-4977
>                 URL: https://issues.apache.org/jira/browse/FELIX-4977
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-5.0.1
>            Reporter: Carsten Ziegeler
>            Assignee: David Bosschaert
>             Fix For: framework-5.0.2
>
>
> It seems there is a chance that a service object returned for a factory 
> service is already unget. The scenario is like this:
> Two threads from the same bundle get the same service which happens to be a 
> service factory.
> While the first thread calls already ungetService, the second thread is in 
> the getService method. The second service gets the same object as the first 
> one, but as the first one passed "successfully" through ungetService, the 
> object is unget and - depending on how its implemented - not usable anymore.
> After some analysis together with David, it seems that both threads get the 
> same usage count object, the ungetService thread decreases the count to zero 
> before the getService thread increases it.
> Therefore the service object is unget but at the same returned to the next 
> client



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to