Hi Robert, I'm picking up this thread again since we briefly talked about this problem; allow me to recap: We are attempting to migrate bundle versions for a Sling application from their Sling 11 versions to the latest stable versions. The application is running against an already populated mongo database and we are seeing the following exception when deploying.
29.01.2020 02:58:59.571 *ERROR* [Apache Sling Repository Startup Thread #4] ERROR: Bundle '160' EventDispatcher: Error during dispatch. (org.apache.sling.api.SlingException: Can't create the JCR event listener.) org.apache.sling.api.SlingException: Can't create the JCR event listener. at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.registerListeners(JcrResourceProvider.java:227) at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.start(JcrResourceProvider.java:182) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler.activate(ResourceProviderHandler.java:74) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.activate(ResourceProviderTracker.java:360) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.register(ResourceProviderTracker.java:192) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.access$200(ResourceProviderTracker.java:59) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:130) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.addingService(ResourceProviderTracker.java:106) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:871) at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1045) at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:999) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833) at org.apache.felix.framework.Felix.registerService(Felix.java:3804) at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.registerService(AbstractSlingRepositoryManager.java:218) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:541) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:92) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:496) Caused by: javax.jcr.LoginException: Can neither derive user name nor principal names for bundle org.apache.sling.jcr.resource [154] and sub service observation at org.apache.sling.jcr.base.AbstractSlingRepository2.loginService(AbstractSlingRepository2.java:387) at org.apache.sling.jcr.resource.internal.JcrListenerBaseConfig.<init>(JcrListenerBaseConfig.java:62) at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.registerListeners(JcrResourceProvider.java:218) ... 41 more The application deploys fine when not running against mongo, or when running against a clean mongo instance. The changes are located here for reference: https://github.com/redhataccess/pantheon/pull/219/files#diff-e93a9e4b7b62ab20d546f78f9ac775c8L33 Any ideas on what could be going wrong? Regards, Carlos On Mon, Jan 27, 2020 at 4:57 AM Robert Munteanu <romb...@apache.org> wrote: > Happy to hear that you got it sorted out! Feel free to come back with > more questions if you have any. > > Thanks, > Robert > > On Fri, 2020-01-24 at 10:58 -0500, Carlos Munoz wrote: > > Thanks Robert. I think we actually found out what was going on: it > > seems we > > have a poorly defined index which was being deployed as part of our > > bundle > > and which was interfering with some of the other indexes. As soon as > > we > > removed it everything started working once again. We are working on a > > better index for the query right now. > > > > Really appreciate your willingness to help here... ++ > > > > On Fri, Jan 24, 2020 at 5:03 AM Robert Munteanu <romb...@apache.org> > > wrote: > > > > > I tried building the app from source code but did not reproduce the > > > problem. I guess this matches your experience - this happens only > > > during an 'upgrade'. > > > > > > Can you please give me a set of steps to reproduce? Ideally without > > > MongoDB, but if that's required leave it in :-) > > > > > > Thanks, > > > Robert > > > > > > On Wed, 2020-01-22 at 22:08 -0500, Carlos Munoz wrote: > > > > I double checked and we do have the mapping. We copied all the > > > > provisioning > > > > files from the commit you recommended earlier [1] and deployed > > > > like > > > > that. > > > > > > > > In fact, you can see our provisioning files here: [2] We are only > > > > adding a > > > > single file with our own bundle and configurations. > > > > > > > > [1] > > > > > https://github.com/apache/sling-org-apache-sling-starter/commit/c4f6e3b > > > > [2] > > > > > > > > https://github.com/redhataccess/pantheon/tree/upgrade-sling-bundles/pantheon-slingstart/src/main/provisioning > > > > On Wed, Jan 22, 2020 at 4:54 PM Robert Munteanu < > > > > romb...@apache.org> > > > > wrote: > > > > > > > > > On Wed, 2020-01-22 at 16:16 -0500, Carlos Munoz wrote: > > > > > > Thanks for the tip Daniel! > > > > > > > > > > > > Robert - we were able to successfully package the sling > > > > > > starter > > > > > > with > > > > > > the > > > > > > latest definitions as you pointed, but when deploying on top > > > > > > of > > > > > > an > > > > > > existing > > > > > > database we started getting a JCR error: > > > > > > > > > > > > javax.jcr.LoginException: Can neither derive user name nor > > > > > > principal > > > > > > names > > > > > > for bundle org.apache.sling.jcr.resource [152] and sub > > > > > > service > > > > > > observation > > > > > > > > > > > > We don't get the same error when deploying on a fresh > > > > > > database. > > > > > > > > > > It seems that you have some missing service user mappings. > > > > > Those > > > > > might > > > > > be required by newer versions of the bundles that you just > > > > > consumed. In > > > > > the Sling Starter the current mapping is defined at [1]. > > > > > > > > > > Does adding that as a configuration to your application help? > > > > > > > > > > Thanks, > > > > > Robert > > > > > > > > > > > > > > > [1]: > > > > > > > > > https://github.com/apache/sling-org-apache-sling-starter/blob/7eac121fc3f00c95ef5b8ac38133f6796a4a6c08/src/main/provisioning/sling.txt#L199-L202 > > > > > > >