[
https://issues.apache.org/jira/browse/SLING-10938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17451156#comment-17451156
]
Michał Goliński edited comment on SLING-10938 at 11/30/21, 2:19 PM:
--------------------------------------------------------------------
I've spent some time digging into this. During shutdown the method
{unbindServicePrincipalsValidator} in {ServiceUserMapperImpl} is called and in
effect, the {ServiceUserMapperImpl} OSGi component gets reconfigured and
re-registered. As {JobManagerConfiguration} has an optional reference for
{ServiceUserMapper}, it gets activated. There is a race somewhere, but
{ServiceUserMapperImpl} already has in few places code like this:
{code:java}
try {
serviceRegistration.unregister();
log.debug("Unregistered ServiceUserMapped {}", registration.mapping);
} catch (final IllegalStateException e) {
// this can happen on shutdown, therefore we just ignore it and don't log
}
{code}
So it might be a indicator that the exception should be catched (maybe in
{JobManagerConfiguration}) and ignored. BTW, the exception is already caught
somewhere, as it does not show up normally in error.log (even with DEBUG turned
on).
was (Author: JIRAUSER280737):
I've spent some time digging into this. During shutdown the method
{unbindServicePrincipalsValidator} in {ServiceUserMapperImpl} is called and in
effect, the {ServiceUserMapperImpl} OSGi component gets reconfigured and
re-registered. As {JobManagerConfiguration} has an optional reference for
{ServiceUserMapper}, it gets activated. There is a race somewhere, but
{ServiceUserMapperImpl} already has in few places code like this:
{code:java}
try {
serviceRegistration.unregister();
log.debug("Unregistered ServiceUserMapped {}",
registration.mapping);
} catch (final IllegalStateException e) {
// this can happen on shutdown, therefore we just ignore it
and don't log
}
{code}
So it might be a indicator that the exception should be catched (maybe in
{JobManagerConfiguration}) and ignored. BTW, the exception is already caught
somewhere, as it does not show up normally in error.log (even with DEBUG turned
on).
> Exception thrown on Sling Starter shutdown in JobManagerConfiguration
> ---------------------------------------------------------------------
>
> Key: SLING-10938
> URL: https://issues.apache.org/jira/browse/SLING-10938
> Project: Sling
> Issue Type: Task
> Components: Event
> Affects Versions: Event 4.2.24
> Reporter: Michał Goliński
> Priority: Minor
> Attachments: error.log, stacktrace.txt, stdout.txt
>
>
> On stopping the Sling Starter with Ctrl+C we can occasionally see the
> following stacktrace:
> {code:java}
> ERROR : bundle org.apache.sling.event:4.2.20
> (151)[org.apache.sling.event.impl.jobs.config.JobManagerConfiguration(247)] :
> The activate method has thrown an exception
> java.lang.IllegalArgumentException: Can't create child on a synthetic root
> at
> org.apache.sling.resourceresolver.impl.ResourceResolverImpl.create(ResourceResolverImpl.java:1006)
> ...
> at
> org.apache.sling.api.resource.ResourceUtil.getOrCreateResource(ResourceUtil.java:571)
> at
> org.apache.sling.event.impl.support.ResourceHelper.getOrCreateBasePath(ResourceHelper.java:258)
> at
> org.apache.sling.event.impl.jobs.config.JobManagerConfiguration.activate(JobManagerConfiguration.java:225)
> ...
> at
> org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.executeServiceRegistrations(ServiceUserMapperImpl.java:439)
> at
> org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.lambda$executeServiceRegistrationsAsync$0(ServiceUserMapperImpl.java:406)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> at java.base/java.lang.Thread.run(Thread.java:833)
> {code}
> This happens also with bundle version 4.2.24.
> This doesn't happen every time, but I've seen up to seven of these at a time
> (the number of stacktraces changes), see the attached file. This might be
> similar to SLING-10204 , although in the debugger I can see the
> ServiceUserMapped being mentioned, not ResourceResolverFactory.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)