[
https://issues.apache.org/jira/browse/SLING-731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bertrand Delacretaz closed SLING-731.
-------------------------------------
Resolution: Fixed
After more testing and looking more closely at the code I have reverted the
change of revision 713758 (except logging which is good) - refreshing packages
is not needed in this case, restarting the bundles will happen anyway when
processResourceQueue() is called.
I did some manual tests by repeatedly removing and re-adding about 50 bundles
with the code of revision 714005 (which also includes the changes of SLING-733
and things look good.
We do need more testing though, the best might be to create an integration test
with a real repository, adding and removing large numbers of bundles to make
sure things work as expected. There's a lot of async stuff going on when
jcrinstall kicks in at startup.
Closing this issue for now, we'll handle the tests in SLING-734
> Active bundles queue must be reprocessed if bundle.start() fails
> ----------------------------------------------------------------
>
> Key: SLING-731
> URL: https://issues.apache.org/jira/browse/SLING-731
> Project: Sling
> Issue Type: Bug
> Components: JCR Install
> Reporter: Bertrand Delacretaz
>
> In BundleResourceProcessor.startBundles, if Bundle.start() fails the bundle
> is re-added to the activeBundles queue, but the needsRefresh flag is not set.
> If several bundles which depend on each other fill this queue, it might
> happen that the first one does not start because it needs another one that's
> in the queue.
> When that happens, the queue remains non-empty, but is never refresh if no
> new bundles are detected.
> The consequence is that some bundles might not be started until a new bundle
> arrives which causes the needsRefresh flag to be set.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.