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