You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Dominik Süß (JIRA)" <ji...@apache.org> on 2016/06/14 13:19:09 UTC

[jira] [Commented] (SLING-5457) OsgiInstaller should retry to start bundles on failures

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

Dominik Süß commented on SLING-5457:
------------------------------------

Issue reappeared randomly on some automated install tests - from looking at the code base it looks like the osgi installer doesn't take into account that the framework expects the bundle to be stopped and not stopping when updating. The stop command directly before executing the  update command might not have enough time to stop the bundle. I therefore would also vote for retrying multiple times and logging an ERROR when this does not resolve the issue. The fact that this is only logged as INFO did hide the existence of an issue and might lead to subtle effects when the failed bundles where not bumping the major version.

> OsgiInstaller should retry to start bundles on failures
> -------------------------------------------------------
>
>                 Key: SLING-5457
>                 URL: https://issues.apache.org/jira/browse/SLING-5457
>             Project: Sling
>          Issue Type: Bug
>          Components: Installer
>    Affects Versions: Installer Core 3.6.4
>            Reporter: Jörg Hoh
>
> The OsgiInstaller doesn't update a bundle properly, if there's an exception from the framework.
> I have this exception:
> {code}
> 11.12.2015 14:09:36.753 *INFO* [FelixStartLevel] my.custom.bundle BundleEvent RESOLVED
> 11.12.2015 14:09:36.753 *INFO* [FelixStartLevel] my.custom.bundle BundleEvent STARTING
> 11.12.2015 14:09:36.754 INFO [OsgiInstallerImpl] org.apache.sling.installer.core.impl.tasks.BundleUpdateTask Removing failing update task - unable to retry: BundleUpdateTask: TaskResource(url=jcrinstall:/apps/myapp/install/my.custom.bundle-1.5.6-SNAPSHOT.jar, entity=bundle:my.custom.bundle, state=INSTALL, attributes=[org.apache.sling.installer.api.tasks.ResourceTransformer=:28:84:15:, Bundle-SymbolicName=my.custom.bundle, Bundle-Version=1.5.6-SNAPSHOT], digest=1449838063263)
> org.osgi.framework.BundleException: Bundle my.custom.bundle [252] cannot be update, since it is either starting or stopping.
> at org.apache.felix.framework.Felix.updateBundle(Felix.java:2311)
> at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:995)
> at org.apache.sling.installer.core.impl.tasks.BundleUpdateTask.execute(BundleUpdateTask.java:92)
> at org.apache.sling.installer.core.impl.OsgiInstallerImpl.doExecuteTasks(OsgiInstallerImpl.java:847)
> at org.apache.sling.installer.core.impl.OsgiInstallerImpl.executeTasks(OsgiInstallerImpl.java:689)
> at org.apache.sling.installer.core.impl.OsgiInstallerImpl.run(OsgiInstallerImpl.java:265)
> at java.lang.Thread.run(Thread.java:767)
> {code}
> I don't know for what reason the Felix.updateBundle() failed (see also FELIX-5138 to get some more information in this case), but from my point of view there should be a dedicated error handling just for the {code}BundleImpl.update{code} call. Does it make sense to retry the installation at a later point in time (maybe 3 times at max)?
> (I got this exception when I deployed a large number of bundles through the JCR installer. It happens only once in a while, but it's an annoying task to fix it manually.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)