Cannot log into GitHub

We are trying out Upsource and we have added 8 of our developers to Upsource (Upsource actually indicates that we have 10 Users because of the guest user and the admin user)...

All of our projects are in Github and we use Github Pull Request to commit our code and are looking to use Upsource to improve our code review process.

5 of our developers were able to log into Github successfully, but 3 developers get the following error when trying to log into github from Upsource

When I look at the upsource-stdout.log log file I have the following error:

[2017-12-08 09:46:10,455] 09:46:10,433 ERROR [KLogging ] Log in failed
[2017-12-08 09:46:10,455] jetbrains.jetpass.dao.dnq.api.authority.login.AggregateAuthenticationException: Log in failed
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl$login$1.invoke(LoginHandlerImpl.kt:91)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl$login$1.invoke(LoginHandlerImpl.kt:38)
[2017-12-08 09:46:10,455] at kotlinx.dnq.TransactionKt.transactional(Transaction.kt:39)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional(Transaction.kt:21)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional$default(Transaction.kt:15)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl.login(LoginHandlerImpl.kt:53)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dao.dnq.api.authority.module.JetPassAuthModuleDAO$login$2$1.invoke(JetPassAuthModuleDAO.kt:133)
[2017-12-08 09:46:10,455] at jetbrains.jetpass.dao.dnq.api.authority.module.JetPassAuthModuleDAO$login$2$1.invoke(JetPassAuthModuleDAO.kt:37)
[2017-12-08 09:46:10,455] at kotlinx.dnq.TransactionKt.transactional(Transaction.kt:39)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional(Transaction.kt:21)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional$default(Transaction.kt:15)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dao.dnq.api.DataAccessExceptionUtilKt.daoTransaction(DataAccessExceptionUtil.kt:29)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dao.dnq.api.authority.module.JetPassAuthModuleDAO$login$2.invoke(JetPassAuthModuleDAO.kt:132)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dao.dnq.api.authority.module.JetPassAuthModuleDAO$login$2.invoke(JetPassAuthModuleDAO.kt:37)
[2017-12-08 09:46:10,456] at jetbrains.hub.server.console.HubPrincipalManagerImpl.runAs(HubPrincipalManagerImpl.kt:33)
[2017-12-08 09:46:10,456] at jetbrains.hub.server.console.HubPrincipalManagerImpl.runAsRoot(HubPrincipalManagerImpl.kt:40)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dao.dnq.api.authority.module.JetPassAuthModuleDAO.login(JetPassAuthModuleDAO.kt:131)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.LoginActions.login(LoginActions.kt:45)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil$landFederatedAuthentication$1.invoke(FederatedAuthenticationUtil.kt:54)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil$landFederatedAuthentication$1.invoke(FederatedAuthenticationUtil.kt:16)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil$withFederatedAuthenticationHandler$1.invoke(FederatedAuthenticationUtil.kt:73)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil$withFederatedAuthenticationHandler$1.invoke(FederatedAuthenticationUtil.kt:16)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.GodMode$eval$2$1.invoke(GodMode.kt:45)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.GodMode$eval$2$1.invoke(GodMode.kt:15)
[2017-12-08 09:46:10,456] at kotlinx.dnq.TransactionKt.transactional(Transaction.kt:39)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional(Transaction.kt:21)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional$default(Transaction.kt:15)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.GodMode$eval$2.invoke(GodMode.kt:45)
[2017-12-08 09:46:10,456] at jetbrains.hub.server.console.HubPrincipalManagerImpl.runAs(HubPrincipalManagerImpl.kt:33)
[2017-12-08 09:46:10,456] at jetbrains.hub.server.console.HubPrincipalManagerImpl.runAsRoot(HubPrincipalManagerImpl.kt:40)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.GodMode.eval(GodMode.kt:44)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.GodMode.eval(GodMode.kt:26)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil.withFederatedAuthenticationHandler(FederatedAuthenticationUtil.kt:65)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.FederatedAuthenticationUtil.landFederatedAuthentication(FederatedAuthenticationUtil.kt:42)
[2017-12-08 09:46:10,456] at jetbrains.jetpass.oauth.interactive.LoginSubresource.getFederatedLand(LoginSubresource.kt:53)
[2017-12-08 09:46:10,456] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2017-12-08 09:46:10,456] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2017-12-08 09:46:10,456] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2017-12-08 09:46:10,456] at java.lang.reflect.Method.invoke(Method.java:498)
[2017-12-08 09:46:10,456] at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
[2017-12-08 09:46:10,456] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
[2017-12-08 09:46:10,456] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
[2017-12-08 09:46:10,456] at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
[2017-12-08 09:46:10,456] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:309)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:292)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1139)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:454)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:334)
[2017-12-08 09:46:10,457] at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1772)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.filter.LocalScopeFilter.doFilter(LocalScopeFilter.kt:19)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.filter.SourceMapsFilter.doFilter(SourceMapsFilter.kt:45)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.filter.LoggingFilter.doFilter(LoggingFilter.kt:20)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:127)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
[2017-12-08 09:46:10,457] at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
[2017-12-08 09:46:10,457] at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
[2017-12-08 09:46:10,457] at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
[2017-12-08 09:46:10,457] at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.maintenance.performance.PerformanceFilter$doFilter$1.invoke(PerformanceFilter.kt:14)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.maintenance.performance.PerformanceFilter$doFilter$1.invoke(PerformanceFilter.kt:6)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.maintenance.performance.PerformanceMonitor$Companion.request(PerformanceMonitor.kt:87)
[2017-12-08 09:46:10,457] at jetbrains.hub.server.maintenance.performance.PerformanceFilter.doFilter(PerformanceFilter.kt:13)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
[2017-12-08 09:46:10,457] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:493)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.Server.handle(Server.java:534)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
[2017-12-08 09:46:10,458] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
[2017-12-08 09:46:10,458] at java.lang.Thread.run(Thread.java:748)
[2017-12-08 09:46:10,458] Suppressed: jetbrains.jetpass.dao.api.LicenseViolationException: Number of users allowed by the license is exceeded
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.authModule.ExternalAuthModuleProvider.createNewUser(ExternalAuthModuleProvider.kt:108)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl.createNewUser(LoginHandlerImpl.kt:241)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl.access$createNewUser(LoginHandlerImpl.kt:38)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl$resolve$1.invoke(LoginHandlerImpl.kt:131)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl$resolve$1.invoke(LoginHandlerImpl.kt:38)
[2017-12-08 09:46:10,458] at kotlinx.dnq.TransactionKt.transactional(Transaction.kt:39)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional(Transaction.kt:21)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dnq.TransactionKt.legacyTransactional$default(Transaction.kt:15)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl.resolve(LoginHandlerImpl.kt:105)
[2017-12-08 09:46:10,458] at jetbrains.jetpass.dao.dnq.api.authority.login.LoginHandlerImpl$login$1.invoke(LoginHandlerImpl.kt:76)
[2017-12-08 09:46:10,458] ... 104 more
[2017-12-08 09:46:10,458] Caused by: jetbrains.ring.license.checker.LicenseUserNumberExceededException: Number of users allowed by the license is exceeded
[2017-12-08 09:46:10,459] at jetbrains.ring.license.checker.LicenseCheckerImpl.checkAllowsMoreUsers(LicenseCheckerImpl.java:78)
[2017-12-08 09:46:10,459] at jetbrains.jetpass.userManagement.persistence.license.HubLicenseChecker.checkAllowsMoreUsers(HubLicenseChecker.kt:55)
[2017-12-08 09:46:10,459] at jetbrains.jetpass.dao.dnq.authModule.ExternalAuthModuleProvider.createNewUser(ExternalAuthModuleProvider.kt:106)
[2017-12-08 09:46:10,459] ... 113 more

 

The last part of the exception seems to indicate that we have exceeded the number of users for the license.  Does Upsource treat a signin to github, for an existing Upsource user, as another user?  What can we do to get all 8 of our registered developers/users to login successfully to github?

3 comments

We may have found a workaround....

1. Ban the the guest user (opening up a spot in the license)
2. Have a Developer re-login into githug (sure enough, a new user got created in Upsource for that developer (resulting in 2 users for the 1 developer). 
3. We then merged the newly created duplicate user back to the original developer

We had the other 2 developers perform the same process and they were able to login.

It would have been really nice to:

1. Get an error message that would show that the user limit was reached because logging into github would create another user. (we spent a ton of time chasing user credential OAuth issues with Github... which never was the real issue)
2. Have Upsource realize that a developer is ALREADY logged into Upsource and they are trying to associate their Github account and to auto merge the duplicate accounts

0

Hello!

It looks like when your users try to log into Upsource, new user accounts are created for them despite the fact that the GitHub module already contains those accounts. To avoid this situation, please check that your users have the same emails in their profiles in Upsource and in GitHub. If you ensure that, then your users will login with their existing GitHub accounts. Otherwise, duplicate accounts will continue to be created, and they will continue taking up licenses.

Could you please tell us the build number of Upsource that you're using currently?

Thanks.

0

Is there a fix for this problem? We want to use the Active Directory authentication module but still access GitHub. Is this possible?

0

Please sign in to leave a comment.