You might know what’s in Karaf, but I don’t.  What are the versions of config 
admin and DS that you are using?

Since you say this is occurring in production it might not be possible, but if 
you can get a log with debug trace on (setting ds.loglevel=debug) with the 
trunk version of DS that would be extremely helpful figuring out what is going 
on…. I added some logging of the config change count since the last release.

thanks
david jencks

> On May 31, 2016, at 12:53 PM, Fabian Lange <fabian.la...@codecentric.de> 
> wrote:
> 
> Hi all,
> 
> I am observing an issue in production which looks to me like a race
> condition, but I am unable to reproduce it so far.
> 
> 
> The exception is:
> java.lang.IllegalStateException: Existing Configuration with pid
> factoryPid.a5b6fe71-556c-4ce9-b09c-c19542586fc5 has had its properties set
> to null and location changed.  We expected a delete event first.
>        at
> org.apache.felix.scr.impl.config.ConfigurationSupport.configurationEvent(ConfigurationSupport.java:351)[34:org.apache.felix.scr:2.0.2]
>        at
> org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:2046)[4:org.apache.felix.configadmin:1.8.8]
>        at
> org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:2014)[4:org.apache.felix.configadmin:1.8.8]
>        at
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[4:org.apache.felix.configadmin:1.8.8]
>        at
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[4:org.apache.felix.configadmin:1.8.8]
>        at java.lang.Thread.run(Thread.java:745)[:1.8.0_91]
> 
> 
> What is happening:
> I am creating configurations in Karaf (4.0.5) using ConfigAdmin:
> 
> Configuration configuration = configAdmin.createFactoryConfiguration(
> "factoryPid", null);
> configuration.update(dictionary);
> 
> It is possible that due to validation shortly after the same config is
> deleted:
> 
> configAdmin.listConfigurations("(service.factoryPid=factoryPid)"
> )[0].delete()
> 
> My theory is that the update is still processing while it is already
> deleted again, and then the scr listener complains.
> 
> 
> Ideas?
> Best regards,
> Fabian
> 
> --
> Fabian Lange | Performance Expert
> mobil: +49 (0) 160.3673393
> 
> codecentric AG | Merscheider Straße 1 | 42699 Solingen | Deutschland
> 
> Sitz der Gesellschaft: Solingen | HRB 25917| Amtsgericht Wuppertal
> Vorstand: Michael Hochgürtel . Mirko Novakovic . Rainer Vehns
> Aufsichtsrat: Patric Fedlmeier (Vorsitzender) . Klaus Jäger . Jürgen Schütz

Reply via email to