You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Ioannis Canellos (JIRA)" <ji...@apache.org> on 2014/07/18 16:07:04 UTC

[jira] [Updated] (FELIX-4566) Consistency in PersistenceManager and Cache is not guaranteed

     [ https://issues.apache.org/jira/browse/FELIX-4566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ioannis Canellos updated FELIX-4566:
------------------------------------

    Attachment: FELIX-4566.patch

I am attaching a patch which uses read/write lock to ensure that updates on cache and persistence manager are synchronized.

It also removes the check and act for populating the initial cache values and moves that part in the constructor. 

> Consistency in PersistenceManager and Cache is not guaranteed
> -------------------------------------------------------------
>
>                 Key: FELIX-4566
>                 URL: https://issues.apache.org/jira/browse/FELIX-4566
>             Project: Felix
>          Issue Type: Bug
>          Components: Configuration Admin
>    Affects Versions: configadmin-1.8.2
>            Reporter: Ioannis Canellos
>         Attachments: FELIX-4566.patch
>
>
> Currently the store method in the CachingPersistenceManagerProxy performs an update on the PersistenceManager and then also updates the Cache.
> Since we are updating 2 resources, without any form of synchronisation its possible that the resources are out of sync.
> For example:
> Two threads A and B call configuration.update() on the same pid. The first threads calls store(), the PersistenceManager gets updated and then the second thread kicks in updates both PersistenceManager and the cache and finally the first thread updates the cache. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)