Configuration may be supplied twice in certain situations
---------------------------------------------------------

                 Key: FELIX-1542
                 URL: https://issues.apache.org/jira/browse/FELIX-1542
             Project: Felix
          Issue Type: Bug
          Components: Conditional Permission Admin, Specification compliance
    Affects Versions: configadmin-1.2.0, configadmin-1.2.2
            Reporter: Felix Meschberger
            Assignee: Felix Meschberger
             Fix For:  configadmin-1.2.4


An issue reported in FELIX-1146 and presumably fixed in configadmin 1.2.0 is 
not really fixed: With the fix for 1.2.0 in Rev. 805668 the window for the race 
condition is much smaller than before, but it still exists:

Consider this:

   T1. create and update configuration
            ConfigurationImpl.update persists configuration and sets field
            Thread preempted

   T2. ManagedServiceUpdate constructor reads configuration
            Uses configuration already persisted by T1 for update
            Schedules task to update service with the configuration

   T1. Runs again creating the UpdateConfiguration task with the
             configuration persisted earlier
             Schedules task to update service

   UpdateTask:
             updates ManagedService with configuration prepared by T2
             updates ManagedService with configuration prepared by T1

In this small window a race condition occurred, which caused the ManagedService 
to be supplied with the same configuration twice. It would have been ok for the 
ManagedService to first get null (for the service registration and 
configuration not available yet) and in a second call to get the configuration. 
But it is not ok to get the same configuration twice.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to