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

Organization scan seems to fail on first transient network issue

    Details

    • Similar Issues:

      Description

      (Unsure about the component.)

      I triggered an organization scan for https://ci.jenkins.io/job/Plugins today and checked just now: It seems to have failed due to a transient network issue. Tail of the log:

      Examining jenkinsci/groovy-postbuild-plugin
      
        Checking branches...
      10:06:47 GitHub API Usage: Current quota has 3717 remaining (17 under budget). Next quota of 5000 in 55 min
      
        Getting remote branches...
      
          Checking branch master
            ‘Jenkinsfile’ not found
          Does not meet criteria
      10:06:47 GitHub API Usage: Current quota has 3714 remaining (14 under budget). Next quota of 5000 in 55 min
      
          Checking branch recovery
            ‘Jenkinsfile’ not found
          Does not meet criteria
      10:06:47 GitHub API Usage: Current quota has 3712 remaining (12 under budget). Next quota of 5000 in 55 min
      
          Checking branch svn
      ERROR: [Thu Oct 05 10:06:57 GMT 2017] Could not fetch sources from navigator org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator@23da58dd
      java.net.SocketException: Socket closed
      	at java.net.SocketInputStream.read(SocketInputStream.java:204)
      	at java.net.SocketInputStream.read(SocketInputStream.java:141)
      	at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
      	at sun.security.ssl.InputRecord.read(InputRecord.java:503)
      	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
      	at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
      	at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
      	at okio.Okio$2.read(Okio.java:139)
      	at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
      Caused: java.net.SocketTimeoutException: timeout
      	at okio.Okio$3.newTimeoutException(Okio.java:207)
      	at okio.AsyncTimeout.exit(AsyncTimeout.java:261)
      	at okio.AsyncTimeout$2.read(AsyncTimeout.java:215)
      	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
      	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
      	at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
      	at com.squareup.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:186)
      	at com.squareup.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:127)
      	at com.squareup.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:737)
      	at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:609)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:460)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:399)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:527)
      	at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
      	at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
      	at org.kohsuke.github.Requester.parse(Requester.java:592)
      Caused: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/repos/jenkinsci/groovy-postbuild-plugin/contents/?ref=refs%2Fheads%2Fsvn
      	at org.kohsuke.github.Requester.parse(Requester.java:622)
      	at org.kohsuke.github.Requester.parse(Requester.java:620)
      	at org.kohsuke.github.Requester.parse(Requester.java:620)
      	at org.kohsuke.github.Requester.parse(Requester.java:584)
      	at org.kohsuke.github.Requester._to(Requester.java:264)
      	at org.kohsuke.github.Requester.to(Requester.java:226)
      	at org.kohsuke.github.GHRepository.getDirectoryContent(GHRepository.java:1299)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMProbe.stat(GitHubSCMProbe.java:131)
      	at org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:74)
      	at jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:344)
      	at jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:251)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:875)
      	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:355)
      	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:309)
      	at jenkins.branch.MultiBranchProjectFactory$BySCMSourceCriteria.recognizes(MultiBranchProjectFactory.java:263)
      	at jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.recognizes(OrganizationFolder.java:1297)
      	at jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.complete(OrganizationFolder.java:1312)
      	at jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:256)
      	at jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:206)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator.visitSources(GitHubSCMNavigator.java:961)
      	at jenkins.branch.OrganizationFolder.computeChildren(OrganizationFolder.java:412)
      	at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:276)
      	at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:165)
      	at jenkins.branch.OrganizationFolder$OrganizationScan.run(OrganizationFolder.java:863)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:419)
      [Thu Oct 05 10:06:57 GMT 2017] Finished organization scan. Scan took 51 min
      FATAL: Failed to recompute children of Plugins
      org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/repos/jenkinsci/groovy-postbuild-plugin/contents/?ref=refs%2Fheads%2Fsvn
      	at org.kohsuke.github.Requester.parse(Requester.java:622)
      	at org.kohsuke.github.Requester.parse(Requester.java:620)
      	at org.kohsuke.github.Requester.parse(Requester.java:620)
      	at org.kohsuke.github.Requester.parse(Requester.java:584)
      	at org.kohsuke.github.Requester._to(Requester.java:264)
      	at org.kohsuke.github.Requester.to(Requester.java:226)
      	at org.kohsuke.github.GHRepository.getDirectoryContent(GHRepository.java:1299)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMProbe.stat(GitHubSCMProbe.java:131)
      	at org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory$1.isHead(WorkflowBranchProjectFactory.java:74)
      	at jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:344)
      	at jenkins.scm.api.trait.SCMSourceRequest.process(SCMSourceRequest.java:251)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:875)
      	at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:355)
      	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:309)
      	at jenkins.branch.MultiBranchProjectFactory$BySCMSourceCriteria.recognizes(MultiBranchProjectFactory.java:263)
      	at jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.recognizes(OrganizationFolder.java:1297)
      	at jenkins.branch.OrganizationFolder$SCMSourceObserverImpl$1.complete(OrganizationFolder.java:1312)
      	at jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:256)
      	at jenkins.scm.api.trait.SCMNavigatorRequest.process(SCMNavigatorRequest.java:206)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator.visitSources(GitHubSCMNavigator.java:961)
      	at jenkins.branch.OrganizationFolder.computeChildren(OrganizationFolder.java:412)
      	at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:276)
      	at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:165)
      	at jenkins.branch.OrganizationFolder$OrganizationScan.run(OrganizationFolder.java:863)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:419)
      Caused by: java.net.SocketTimeoutException: timeout
      	at okio.Okio$3.newTimeoutException(Okio.java:207)
      	at okio.AsyncTimeout.exit(AsyncTimeout.java:261)
      	at okio.AsyncTimeout$2.read(AsyncTimeout.java:215)
      	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
      	at okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
      	at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
      	at com.squareup.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:186)
      	at com.squareup.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:127)
      	at com.squareup.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:737)
      	at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:609)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:460)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:399)
      	at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:527)
      	at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
      	at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
      	at org.kohsuke.github.Requester.parse(Requester.java:592)
      	... 23 more
      Caused by: java.net.SocketException: Socket closed
      	at java.net.SocketInputStream.read(SocketInputStream.java:204)
      	at java.net.SocketInputStream.read(SocketInputStream.java:141)
      	at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
      	at sun.security.ssl.InputRecord.read(InputRecord.java:503)
      	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
      	at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
      	at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
      	at okio.Okio$2.read(Okio.java:139)
      	at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
      	... 36 more
      Finished: FAILURE

      This should be made more robust, e.g. reattempt after a minute or so, and only abort if multiple failures occurred. Especially for large orgs with many potentially included plugins such as jenkinsci/ and the '.*-plugin' repo match, scans take forever, and should be more robust against errors.

        Attachments

          Issue Links

            Activity

            Hide
            stephenconnolly Stephen Connolly added a comment -

            I think this should probably be made as a github specific trait. Some people may want the immediate failure, while others may want different retry semantics.

            Should probably be a core trait of the GitHub plugin as it will need some close-coupling there and would be of generic utility to anyone using the GitHub Branch Source, even if the default experience for users should be as currently implemented

            Show
            stephenconnolly Stephen Connolly added a comment - I think this should probably be made as a github specific trait. Some people may want the immediate failure, while others may want different retry semantics. Should probably be a core trait of the GitHub plugin as it will need some close-coupling there and would be of generic utility to anyone using the GitHub Branch Source, even if the default experience for users should be as currently implemented
            Hide
            stephenconnolly Stephen Connolly added a comment -

            Will need matching RFEs for Bitbucket and Gitea... perhaps even Git too (as it has ls-remote that one might want to retry)

            Show
            stephenconnolly Stephen Connolly added a comment - Will need matching RFEs for Bitbucket and Gitea... perhaps even Git too (as it has ls-remote that one might want to retry)
            Hide
            danielbeck Daniel Beck added a comment -

            This has failed again since. Unless I got the regex wrong, there's not been a complete scan between the two failures.

            Show
            danielbeck Daniel Beck added a comment - This has failed again since. Unless I got the regex wrong, there's not been a complete scan between the two failures.
            Hide
            jglick Jesse Glick added a comment -

            Well-known issue.

            Show
            jglick Jesse Glick added a comment - Well-known issue.
            Hide
            danielbeck Daniel Beck added a comment -

            Possible duplicate of JENKINS-45142.

            Current scan result failed on the 4th of about 1200 repos. This is a (bad) joke.

            Show
            danielbeck Daniel Beck added a comment - Possible duplicate of JENKINS-45142 . Current scan result failed on the 4th of about 1200 repos. This is a (bad) joke.

              People

              • Assignee:
                Unassigned
                Reporter:
                danielbeck Daniel Beck
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: