[
https://issues.apache.org/jira/browse/SLING-13393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joerg Hoh reassigned SLING-13393:
---------------------------------
Assignee: Joerg Hoh
> ResourceBundle services can remain registered after provider deactivation
> -------------------------------------------------------------------------
>
> Key: SLING-13393
> URL: https://issues.apache.org/jira/browse/SLING-13393
> Project: Sling
> Issue Type: Task
> Affects Versions: I18N Support 2.6.6, i18n 3.0.0
> Reporter: Joerg Hoh
> Assignee: Joerg Hoh
> Priority: Major
>
> Resource bundle registration can overlap with deactivation of
> {{JcrResourceBundleProvider}}, leaving manually registered {{ResourceBundle}}
> services available after the provider has stopped.
> The registry checks whether it is open before registering a service, but that
> check and publication of the resulting registration are not coordinated with
> registry closure.
> h2. Example
> A request loads the English bundle while the provider is being deactivated:
> # The loading thread checks that the registry is open and starts registering
> the English service.
> # Deactivation marks the registry closed and unregisters all services
> currently tracked by it.
> # The loading thread completes registration and adds the new service to the
> already-closed registry.
> The new service was not tracked when deactivation performed cleanup, so it
> remains registered.
> The same problem can occur without separate threads: OSGi service
> registration synchronously notifies listeners, and a listener can trigger
> provider deactivation before the registration call returns.
> h2. Impact
> Component deactivation does not necessarily stop the owning OSGi bundle, for
> example during configuration changes. Leftover services can therefore remain
> discoverable, exposing stale bundle snapshots and potentially accumulating
> alongside registrations from subsequent provider activations.
> Service-presence health checks can also match these leftover services.
> h2. Expected behavior
> After provider deactivation and any overlapping registration operations have
> completed, no provider-owned ResourceBundle services should remain registered.
> An in-progress lookup may still return its constructed bundle, but must not
> leave a service registration behind.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)