Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-70492

[2.29] java.lang.StackOverflowError when performing internal user lookup

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • active-directory-2.29
    • active-directory-2.30

      2023-01-23 12:25:00.470+0000 [id=1553718]       WARNING h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID 0d93d340-ba48-4f62-bcc8-19d15da03ca9
      java.lang.StackOverflowError
              at java.base/java.security.AccessController.doPrivileged(Native Method)
              at java.naming/com.sun.naming.internal.VersionHelper.getJndiProperties(VersionHelper.java:166)
              at java.naming/com.sun.naming.internal.ResourceManager.getInitialEnvironment(ResourceManager.java:165)
              at java.naming/javax.naming.InitialContext.init(InitialContext.java:232)
              at java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)
              at java.naming/javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:101)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm$DescriptorImpl.createDNSLookupContext(ActiveDirectorySecurityRealm.java:739)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm$DescriptorImpl.obtainLDAPServer(ActiveDirectorySecurityRealm.java:748)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.obtainLDAPServers(ActiveDirectoryUnixAuthenticationProvider.java:314)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:302)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:224)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
              at hudson.plugins.active_directory.ActiveDirectoryMailAddressResolverImpl.findMailAddressFor(ActiveDirectoryMailAddressResolverImpl.java:55)
              at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:122)
              [...]
              at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:748)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.logUserAuthentication(AuthenticatedUsersAuditor.java:85)
              at org.jenkinsci.plugins.useractivity.AuthenticatedUsersAuditor.authenticated(AuthenticatedUsersAuditor.java:47)
              at jenkins.security.SecurityListener.authenticated2(SecurityListener.java:55)
              at jenkins.security.SecurityListener.fireAuthenticated2(SecurityListener.java:117)
              at jenkins.security.SecurityListener.fireAuthenticated(SecurityListener.java:127)
              at hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:225)
              at hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:47)
              at hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:900)
              at hudson.security.AbstractPasswordBasedSecurityRealm.loadUserByUsername2(AbstractPasswordBasedSecurityRealm.java:118)
              at jenkins.security.ImpersonatingUserDetailsService2.loadUserByUsername(ImpersonatingUserDetailsService2.java:29)
              at org.acegisecurity.userdetails.UserDetailsService.lambda$fromSpring$0(UserDetailsService.java:42)
      

          [JENKINS-70492] [2.29] java.lang.StackOverflowError when performing internal user lookup

          Félix Belzunce Arcos added a comment - https://github.com/jenkinsci/active-directory-plugin/pull/162

          Marian Degel added a comment -

          fbelzunc: Thanks this fixed our issue

          Marian Degel added a comment - fbelzunc : Thanks this fixed our issue

          Marian Degel added a comment - - edited

          We have invested some more effort to trace down the bug on our side (as we had exactly the UI behavior discussed in JENKINS-70270).
          We noticed that the issue was not caused by the combination:

          • Jenkins 2.346.3
          • Active Directory plugin 2.29

          but rather by the combination:

          • Active Directory plugin 2.29
          • User Activity Monitoring Plugin 1.1.5 (an outdated plugin, which we only had on our Prod systems)

          Somehow the usage of the User Activity Monitoring Plugin caused some errors which produced the follow up errors fixed here.

          Both, removing the User Activity Monitoring Plugin or updating the Active Directory plugin to 2.30 fixed the issue for us individually.

          Marian Degel added a comment - - edited We have invested some more effort to trace down the bug on our side (as we had exactly the UI behavior discussed in JENKINS-70270 ). We noticed that the issue was not caused by the combination: Jenkins 2.346.3 Active Directory plugin 2.29 but rather by the combination: Active Directory plugin 2.29 User Activity Monitoring Plugin 1.1.5 (an outdated plugin, which we only had on our Prod systems) Somehow the usage of the User Activity Monitoring Plugin caused some errors which produced the follow up errors fixed here. Both, removing the User Activity Monitoring Plugin or updating the Active Directory plugin to 2.30 fixed the issue for us individually.

            fbelzunc Félix Belzunce Arcos
            fbelzunc Félix Belzunce Arcos
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: