sling-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henry Kuijpers (Jira)" <j...@apache.org>
Subject [jira] [Commented] (SLING-6313) Sling installer can duplicate factory configurations if an invalid RegisteredResourceList.ser is found
Date Wed, 26 May 2021 05:06:00 GMT

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

Henry Kuijpers commented on SLING-6313:
---------------------------------------

Please be wary in using the provided tool "Felix OSGi Config Repair": This will only delete
duplicated configurations (which is fine), randomly (and there is the problem). 

There is a reference towards those configuration files (including their pid, which includes
the factory identifier) inside RegisteredResourceList.ser. 

That tool has a chance of deleting the configuration that is actually refered to in RegisteredResourceList.ser.


It is better to somehow parse the .ser file and then do lookups to see if a configuration
is still being used or not. 

There is a tool created by Adobe that maybe does things better: https://helpx.adobe.com/nl/experience-manager/kb/AEM-does-not-pick-Filedatastore-location-and-start-successfully-on-upgrading-from-56x-to-6x.html
However, we weren't able to easily start jar files anywhere on our servers. 

In our case, we fixed it by using a groovy script (in the groovy console in AEM) to list all
configurations (using ConfigurationAdmin) and then looking up each pid in the RegisteredResourceList.ser
file (that we read as a string containing the binary, because it wasn't easy to parse the
file into a proper object tree). The ones we couldn't find, we deleted. 

This was important, because once the duplication happens, the old configuration will not be
used anymore, in terms of being managed by the Sling installer.

> Sling installer can duplicate factory configurations if an invalid RegisteredResourceList.ser
is found
> ------------------------------------------------------------------------------------------------------
>
>                 Key: SLING-6313
>                 URL: https://issues.apache.org/jira/browse/SLING-6313
>             Project: Sling
>          Issue Type: Bug
>          Components: Installer
>            Reporter: Robert Munteanu
>            Assignee: Carsten Ziegeler
>            Priority: Major
>             Fix For: Installer Core 3.9.0, Installer Configuration Factory 1.2.4
>
>         Attachments: SLING-6313-0.diff
>
>
> Steps to reproduce, inside `launchpad/builder`
> {noformat}
> mvn clean package
> java -jar target/org.apache.sling.launchpad-9-SNAPSHOT.jar
> # wait for Sling to start up properly, stop it with CTRL-C
> truncate --size=-1 sling/installer/RegisteredResourceList.ser
> java -jar target/org.apache.sling.launchpad-9-SNAPSHOT.jar
> # wait for Sling to start up properly, stop it with CTRL-C
> java -jar target/org.apache.sling.launchpad-9-SNAPSHOT.jar
> {noformat}
> The following exceptions are logged in the last run:
> {noformat}21.11.2016 14:32:26.538 *ERROR* [CM Configuration Updater (ManagedServiceFactory
Update: factoryPid=[org.apache.sling.commons.log.LogManager.factory.config])] org.apache.felix.configadmin
Service [org.apache.felix.cm.ConfigurationAdmin,28, [org.osgi.service.cm.ConfigurationAdmin]]
[org.osgi.service.cm.ManagedServiceFactory, id=19, bundle=8/slinginstall:org.apache.sling.commons.log-5.0.1-SNAPSHOT.jar]:
Updating property org.apache.sling.commons.log.names of configuration org.apache.sling.commons.log.LogManager.factory.config.b4cf7982-9af0-40a1-b720-3e83a9f9e7f9
caused a problem: Category log.request already defined by configuration org.apache.sling.commons.log.LogManager.factory.config.b4cf7982-9af0-40a1-b720-3e83a9f9e7f9
(org.osgi.service.cm.ConfigurationException: org.apache.sling.commons.log.names : Category
log.request already defined by configuration org.apache.sling.commons.log.LogManager.factory.config.b4cf7982-9af0-40a1-b720-3e83a9f9e7f9)
> org.osgi.service.cm.ConfigurationException: org.apache.sling.commons.log.names : Category
log.request already defined by configuration org.apache.sling.commons.log.LogManager.factory.config.b4cf7982-9af0-40a1-b720-3e83a9f9e7f9
> 	at org.apache.sling.commons.log.logback.internal.config.LoggerManagedServiceFactory.updated(LoggerManagedServiceFactory.java:36)
> 	at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.updated(ManagedServiceFactoryTracker.java:159)
> 	at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:93)
> 	at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1611)
> 	at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1554)
> 	at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:141)
> 	at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:109)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.sling.commons.log.logback.internal.config.ConfigurationException:

> 	at org.apache.sling.commons.log.logback.internal.LogConfigManager.updateLoggerConfiguration(LogConfigManager.java:533)
> 	at org.apache.sling.commons.log.logback.internal.config.LoggerManagedServiceFactory.updated(LoggerManagedServiceFactory.java:34)
> 	... 7 common frames omitted{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message