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

Multibranch Scanning Hang(Gitlab Server Error)

      While fetching branch indexing in a multibrach pipeline job, it getting stuck at scanning branch  for days in GitlabEE Server Error.(As shown in the attached image)

       

      Problmatic thread got stuck in SocketInputStream.socketread0 method

      Thread Stack Trace: 
      Executor #-1 for Built-In Node : executing BranchIndexing[Faceplay/UnityClient]
      java.base@11.0.13/java.net.SocketInputStream.socketRead0(Native Method)
      java.base@11.0.13/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
      java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:168)
      java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:140)
      java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
      java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
      java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
      java.base@11.0.13/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1374)
      java.base@11.0.13/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:985)
      java.base@11.0.13/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
      java.base@11.0.13/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
      java.base@11.0.13/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
      java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
      java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
      java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
      java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
      java.base@11.0.13/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
      java.base@11.0.13/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
      org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
      org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267)
      org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
      org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
      org.glassfish.jersey.client.JerseyInvocation$$Lambda$1124/0x0000000800ef4840.call(Unknown Source)
      org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
      org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
      org.glassfish.jersey.client.JerseyInvocation$$Lambda$1127/0x0000000800ef5440.call(Unknown Source)
      org.glassfish.jersey.internal.Errors.process(Errors.java:292)
      org.glassfish.jersey.internal.Errors.process(Errors.java:274)
      org.glassfish.jersey.internal.Errors.process(Errors.java:205)
      org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
      org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
      org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
      org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
      org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
      org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:416)
      org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:404)
      org.gitlab4j.api.AbstractApi.get(AbstractApi.java:214)
      org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:169)
      org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:122)
      io.jenkins.plugins.gitlabbranchsource.GitLabSCMFile.type(GitLabSCMFile.java:93)
      jenkins.scm.api.SCMFile.getType(SCMFile.java:265)
      io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4.stat(GitLabSCMSource.java:686)
      org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:75)
      jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:342)
      jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:286)
      io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:357)
      jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
      jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
      jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
      com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
      com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
      jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
      hudson.model.ResourceController.execute(ResourceController.java:101)
      hudson.model.Executor.run(Executor.java:442)
      )

      Timeouts setting(org.gitlab4j.api.GitLabApiClien setRequestTimeout API call in gitlabbranchsource plugin) are needed to solve the above problem. 

      The same issue can be identified in Bitbuckt/Github source plugin(https://issues.jenkins.io/browse/JENKINS-36724, https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/135))

       

      Additonally, it is necessary to provide a jvm system property to set the gitlab timeout for  timeout value.(example, java -Dio.jenkins.plugins.gitlabbranchsource.config.readTimeout -Dio.jenkins.plugins.gitlabbranchsource.config.connectTimeout)

      If you can, we propose a common SCMSourceRequest interface. This issue occurs in many jenkins sCM source plugin such as gitblab/bitbucket/github, so we need a common interface at Jenkins level that sets the request timeout based on system properties

          [JENKINS-70447] Multibranch Scanning Hang(Gitlab Server Error)

          ImSeunghyeon created issue -
          ImSeunghyeon made changes -
          Description Original: while fetching branch indexing in a multibrach pipeline job, it getting stuck at scanning branch  for days.(As shown in the attached image)

           

          Problmatic thread got stuck in SocketInputStream.socketread0 method
          (stack trace: 
          Executor #-1 for Built-In Node : executing BranchIndexing[Faceplay/UnityClient]
          java.base@11.0.13/java.net.SocketInputStream.socketRead0(Native Method)
          java.base@11.0.13/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:168)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:140)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1374)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:985)
          java.base@11.0.13/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
          java.base@11.0.13/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
          java.base@11.0.13/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
          java.base@11.0.13/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
          java.base@11.0.13/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
          org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
          org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267)
          org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
          org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1124/0x0000000800ef4840.call(Unknown Source)
          org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
          org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1127/0x0000000800ef5440.call(Unknown Source)
          org.glassfish.jersey.internal.Errors.process(Errors.java:292)
          org.glassfish.jersey.internal.Errors.process(Errors.java:274)
          org.glassfish.jersey.internal.Errors.process(Errors.java:205)
          org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
          org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
          org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
          org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:416)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:404)
          org.gitlab4j.api.AbstractApi.get(AbstractApi.java:214)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:169)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:122)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMFile.type(GitLabSCMFile.java:93)
          jenkins.scm.api.SCMFile.getType(SCMFile.java:265)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4.stat(GitLabSCMSource.java:686)
          org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:75)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:342)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:286)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:357)
          jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
          jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
          jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
          com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
          com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
          jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
          hudson.model.ResourceController.execute(ResourceController.java:101)
          hudson.model.Executor.run(Executor.java:442)
          )

          Timeouts setting(org.gitlab4j.api.GitLabApiClien setRequestTimeout API call in gitlabbranchsource plugin) are needed to solve the above problem. 

          The same issue can be identified in Bitbuckt/Github source plugin(https://issues.jenkins.io/browse/JENKINS-36724, https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/135))

           

          Additonally, it is necessary to provide a jvm system property to set the gitlab timeout for  timeout value.(example, java -Dio.jenkins.plugins.gitlabbranchsource.config.readTimeout -Dio.jenkins.plugins.gitlabbranchsource.config.connectTimeout)


          If you can, we propose a common SCMSourceRequest interface. This issue occurs in many jenkins sCM source plugin such as gitblab/bitbucket/github, so we need a common interface at Jenkins level that sets the request timeout based on system properties
          New: while fetching branch indexing in a multibrach pipeline job, it getting stuck at scanning branch  for days.(As shown in the attached image)

           

          Problmatic thread got stuck in SocketInputStream.socketread0 method
          {code:java}
          Thread Stack Trace:
          Executor #-1 for Built-In Node : executing BranchIndexing[Faceplay/UnityClient]
          java.base@11.0.13/java.net.SocketInputStream.socketRead0(Native Method)
          java.base@11.0.13/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:168)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:140)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1374)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:985)
          java.base@11.0.13/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
          java.base@11.0.13/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
          java.base@11.0.13/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
          java.base@11.0.13/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
          java.base@11.0.13/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
          org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
          org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267)
          org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
          org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1124/0x0000000800ef4840.call(Unknown Source)
          org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
          org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1127/0x0000000800ef5440.call(Unknown Source)
          org.glassfish.jersey.internal.Errors.process(Errors.java:292)
          org.glassfish.jersey.internal.Errors.process(Errors.java:274)
          org.glassfish.jersey.internal.Errors.process(Errors.java:205)
          org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
          org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
          org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
          org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:416)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:404)
          org.gitlab4j.api.AbstractApi.get(AbstractApi.java:214)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:169)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:122)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMFile.type(GitLabSCMFile.java:93)
          jenkins.scm.api.SCMFile.getType(SCMFile.java:265)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4.stat(GitLabSCMSource.java:686)
          org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:75)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:342)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:286)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:357)
          jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
          jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
          jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
          com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
          com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
          jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
          hudson.model.ResourceController.execute(ResourceController.java:101)
          hudson.model.Executor.run(Executor.java:442)
          ){code}
          Timeouts setting(org.gitlab4j.api.GitLabApiClien setRequestTimeout API call in gitlabbranchsource plugin) are needed to solve the above problem. 

          The same issue can be identified in Bitbuckt/Github source plugin(https://issues.jenkins.io/browse/JENKINS-36724, [https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/135]))

           

          Additonally, it is necessary to provide a jvm system property to set the gitlab timeout for  timeout value.(example, java -Dio.jenkins.plugins.gitlabbranchsource.config.readTimeout -Dio.jenkins.plugins.gitlabbranchsource.config.connectTimeout)

          If you can, we propose a common SCMSourceRequest interface. This issue occurs in many jenkins sCM source plugin such as gitblab/bitbucket/github, so we need a common interface at Jenkins level that sets the request timeout based on system properties
          Priority Original: Critical [ 2 ] New: Major [ 3 ]
          ImSeunghyeon made changes -
          Description Original: while fetching branch indexing in a multibrach pipeline job, it getting stuck at scanning branch  for days.(As shown in the attached image)

           

          Problmatic thread got stuck in SocketInputStream.socketread0 method
          {code:java}
          Thread Stack Trace:
          Executor #-1 for Built-In Node : executing BranchIndexing[Faceplay/UnityClient]
          java.base@11.0.13/java.net.SocketInputStream.socketRead0(Native Method)
          java.base@11.0.13/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:168)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:140)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1374)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:985)
          java.base@11.0.13/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
          java.base@11.0.13/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
          java.base@11.0.13/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
          java.base@11.0.13/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
          java.base@11.0.13/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
          org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
          org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267)
          org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
          org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1124/0x0000000800ef4840.call(Unknown Source)
          org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
          org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1127/0x0000000800ef5440.call(Unknown Source)
          org.glassfish.jersey.internal.Errors.process(Errors.java:292)
          org.glassfish.jersey.internal.Errors.process(Errors.java:274)
          org.glassfish.jersey.internal.Errors.process(Errors.java:205)
          org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
          org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
          org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
          org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:416)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:404)
          org.gitlab4j.api.AbstractApi.get(AbstractApi.java:214)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:169)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:122)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMFile.type(GitLabSCMFile.java:93)
          jenkins.scm.api.SCMFile.getType(SCMFile.java:265)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4.stat(GitLabSCMSource.java:686)
          org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:75)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:342)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:286)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:357)
          jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
          jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
          jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
          com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
          com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
          jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
          hudson.model.ResourceController.execute(ResourceController.java:101)
          hudson.model.Executor.run(Executor.java:442)
          ){code}
          Timeouts setting(org.gitlab4j.api.GitLabApiClien setRequestTimeout API call in gitlabbranchsource plugin) are needed to solve the above problem. 

          The same issue can be identified in Bitbuckt/Github source plugin(https://issues.jenkins.io/browse/JENKINS-36724, [https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/135]))

           

          Additonally, it is necessary to provide a jvm system property to set the gitlab timeout for  timeout value.(example, java -Dio.jenkins.plugins.gitlabbranchsource.config.readTimeout -Dio.jenkins.plugins.gitlabbranchsource.config.connectTimeout)

          If you can, we propose a common SCMSourceRequest interface. This issue occurs in many jenkins sCM source plugin such as gitblab/bitbucket/github, so we need a common interface at Jenkins level that sets the request timeout based on system properties
          New: While fetching branch indexing in a multibrach pipeline job, it getting stuck at scanning branch  for days in GitlabEE Server Error.(As shown in the attached image)

           

          Problmatic thread got stuck in SocketInputStream.socketread0 method
          {code:java}
          Thread Stack Trace:
          Executor #-1 for Built-In Node : executing BranchIndexing[Faceplay/UnityClient]
          java.base@11.0.13/java.net.SocketInputStream.socketRead0(Native Method)
          java.base@11.0.13/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:168)
          java.base@11.0.13/java.net.SocketInputStream.read(SocketInputStream.java:140)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
          java.base@11.0.13/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1374)
          java.base@11.0.13/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:985)
          java.base@11.0.13/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
          java.base@11.0.13/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
          java.base@11.0.13/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
          java.base@11.0.13/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
          java.base@11.0.13/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
          java.base@11.0.13/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
          java.base@11.0.13/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
          org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378)
          org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267)
          org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297)
          org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1124/0x0000000800ef4840.call(Unknown Source)
          org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
          org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation$$Lambda$1127/0x0000000800ef5440.call(Unknown Source)
          org.glassfish.jersey.internal.Errors.process(Errors.java:292)
          org.glassfish.jersey.internal.Errors.process(Errors.java:274)
          org.glassfish.jersey.internal.Errors.process(Errors.java:205)
          org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
          org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
          org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
          org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
          org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:416)
          org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:404)
          org.gitlab4j.api.AbstractApi.get(AbstractApi.java:214)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:169)
          org.gitlab4j.api.RepositoryFileApi.getFile(RepositoryFileApi.java:122)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMFile.type(GitLabSCMFile.java:93)
          jenkins.scm.api.SCMFile.getType(SCMFile.java:265)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4.stat(GitLabSCMSource.java:686)
          org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:75)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:342)
          jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:286)
          io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource.retrieve(GitLabSCMSource.java:357)
          jenkins.scm.api.SCMSource._retrieve(SCMSource.java:373)
          jenkins.scm.api.SCMSource.fetch(SCMSource.java:283)
          jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:641)
          com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:278)
          com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:166)
          jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
          hudson.model.ResourceController.execute(ResourceController.java:101)
          hudson.model.Executor.run(Executor.java:442)
          ){code}
          Timeouts setting(org.gitlab4j.api.GitLabApiClien setRequestTimeout API call in gitlabbranchsource plugin) are needed to solve the above problem. 

          The same issue can be identified in Bitbuckt/Github source plugin(https://issues.jenkins.io/browse/JENKINS-36724, [https://github.com/jenkinsci/bitbucket-branch-source-plugin/pull/135]))

           

          Additonally, it is necessary to provide a jvm system property to set the gitlab timeout for  timeout value.(example, java -Dio.jenkins.plugins.gitlabbranchsource.config.readTimeout -Dio.jenkins.plugins.gitlabbranchsource.config.connectTimeout)

          If you can, we propose a common SCMSourceRequest interface. This issue occurs in many jenkins sCM source plugin such as gitblab/bitbucket/github, so we need a common interface at Jenkins level that sets the request timeout based on system properties
          ImSeunghyeon made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          ImSeunghyeon made changes -
          Status Original: In Progress [ 3 ] New: Open [ 1 ]
          Kyle Carter made changes -
          Component/s New: bitbucket-branch-source-plugin [ 21428 ]
          Component/s Original: bitbucket-approval-filter-plugin [ 23536 ]
          Kyle Carter made changes -
          Assignee Original: Kyle Carter [ kylec_32 ] New: Parichay Barpanda [ baymac ]

          Kyle Carter added a comment -

          I'm not entirely sure why I was assigned to this (maybe because I am the owner of the bitbucket-approval-filter-plugin?). I think instead of listing my plugin it would make more sense to tag the bitbucket-branch-source-plugin as my plugin doesn't do any HTTP calls directly. Updated the component and removed myself as the assignee. 

          Kyle Carter added a comment - I'm not entirely sure why I was assigned to this (maybe because I am the owner of the bitbucket-approval-filter-plugin?). I think instead of listing my plugin it would make more sense to tag the bitbucket-branch-source-plugin as my plugin doesn't do any HTTP calls directly. Updated the component and removed myself as the assignee. 
          Mark Waite made changes -
          Assignee Original: Parichay Barpanda [ baymac ]
          Nikolas Falco made changes -
          Component/s Original: bitbucket-branch-source-plugin [ 21428 ]

            Unassigned Unassigned
            ish121 ImSeunghyeon
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: