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

No notification/email when submodule checkout fails

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • git-plugin
    • None

      We use submodules in our Git build, and have the submodule checkout option selected; but if these fail to checkout the build fails (git crashes) without sending mail notification.

      It's not too hard for a developer to break a build like this if they forget to push the submodule at the same time as they push the master repo. It would be good if this was notified properly as a failure so that the devs can see the breakage immediately instead of realizing later that the job has started failing without notifying anybody.

      --------------
      edited transcript;
      Note: we have a prebuild step that completed successfully before the repo +submodules checkouts start.

      Started by remote host avn-gitlab.ictv.com with note:
      ..snip..
      [EnvInject] - Loading node environment variables.
      Building remotely on _SCM in workspace /snip
      Running Prebuild steps
      [] $ /bin/sh -xe /tmp/hudson6376592122742609814.sh
      <snip..>
      Success build forhudson.tasks.Shell@4d6ce481
      
      Checkout:virga-ms / /usr/local/builds/CI/H5/virga-ms - hudson.remoting.Channel@6cd5274:_SCM-CentOS-6.4-Build-Slave-03
      Using strategy: Default
      Last Built Revision: Revision 7c28bf189abbd8c2800aa12d3abaedd015bb4381 (origin/mediasource)
      Wiping out workspace first.
      Cloning the remote Git repository
      Cloning repository git@avn-gitlab.ictv.com:html5server.git
      git --version
      git version 1.7.1
      Fetching upstream changes from origin
      Commencing build of Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
      Checking out Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
      FATAL: Command "git submodule update --init --recursive" returned status code 1:
      stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
      Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
      Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/
      
      stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
      Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'
      
      hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1:
      stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
      Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
      Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/
      
      stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
      Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'
      
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:790)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:756)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.submoduleUpdate(CliGitAPIImpl.java:429)
      	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1235)
      	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1205)
      	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:679)
      

      -----------
      And that is where the build log ends; on the git error stacktrace, no attempt is made to send a failure notification.

          [JENKINS-22084] No notification/email when submodule checkout fails

          Owen Carter created issue -
          Owen Carter made changes -
          Description Original: We have submodules in our get build; but if these fail to checkout the build itself fails (git crashes) without sending mail notification.

          It's not too hard for a developer to break a build like this if they forget to push the submodule at the same time as they push the master repo. It would be good if this was notified properly as a failure so that the devs can see the breakage immediately instead of realizing later that the job has started failing without notifying anybody.

          --------------
          (edited transcript; note we have a prebuild step the completed successfully before the repo (+submodules, we have this option selected) checkouts start then fail.

          {noformat}Started by remote host avn-gitlab.ictv.com with note:
          ..snip..
          [EnvInject] - Loading node environment variables.
          Building remotely on _SCM in workspace /snip
          Running Prebuild steps
          [] $ /bin/sh -xe /tmp/hudson6376592122742609814.sh
          <snip..>
          Success build forhudson.tasks.Shell@4d6ce481

          Checkout:virga-ms / /usr/local/builds/CI/H5/virga-ms - hudson.remoting.Channel@6cd5274:_SCM-CentOS-6.4-Build-Slave-03
          Using strategy: Default
          Last Built Revision: Revision 7c28bf189abbd8c2800aa12d3abaedd015bb4381 (origin/mediasource)
          Wiping out workspace first.
          Cloning the remote Git repository
          Cloning repository git@avn-gitlab.ictv.com:html5server.git
          git --version
          git version 1.7.1
          Fetching upstream changes from origin
          Commencing build of Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
          Checking out Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
          FATAL: Command "git submodule update --init --recursive" returned status code 1:
          stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
          Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
          Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/

          stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
          Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'

          hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1:
          stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
          Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
          Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/

          stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
          Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'

          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:790)
          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:756)
          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.submoduleUpdate(CliGitAPIImpl.java:429)
          at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1235)
          at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1205)
          at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
          at hudson.remoting.UserRequest.perform(UserRequest.java:118)
          at hudson.remoting.UserRequest.perform(UserRequest.java:48)
          at hudson.remoting.Request$2.run(Request.java:326)
          at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:679)
          {noformat}
          -----------
          And that is where the build log ends; on the git error stacktrace, no attempt is made to send a failure notification.
          New: We use submodules in our Git build, and have the submodule checkout option selected; but if these fail to checkout the build fails (git crashes) without sending mail notification.

          It's not too hard for a developer to break a build like this if they forget to push the submodule at the same time as they push the master repo. It would be good if this was notified properly as a failure so that the devs can see the breakage immediately instead of realizing later that the job has started failing without notifying anybody.

          --------------
          edited transcript;
          Note: we have a prebuild step that completed successfully before the repo +submodules checkouts start.

          {noformat}Started by remote host avn-gitlab.ictv.com with note:
          ..snip..
          [EnvInject] - Loading node environment variables.
          Building remotely on _SCM in workspace /snip
          Running Prebuild steps
          [] $ /bin/sh -xe /tmp/hudson6376592122742609814.sh
          <snip..>
          Success build forhudson.tasks.Shell@4d6ce481

          Checkout:virga-ms / /usr/local/builds/CI/H5/virga-ms - hudson.remoting.Channel@6cd5274:_SCM-CentOS-6.4-Build-Slave-03
          Using strategy: Default
          Last Built Revision: Revision 7c28bf189abbd8c2800aa12d3abaedd015bb4381 (origin/mediasource)
          Wiping out workspace first.
          Cloning the remote Git repository
          Cloning repository git@avn-gitlab.ictv.com:html5server.git
          git --version
          git version 1.7.1
          Fetching upstream changes from origin
          Commencing build of Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
          Checking out Revision ff9ab38e606f65d275050bc9f0d2a26b0451f2d6 (origin/mediasource)
          FATAL: Command "git submodule update --init --recursive" returned status code 1:
          stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
          Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
          Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/

          stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
          Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'

          hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1:
          stdout: Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/libbmp/.git/
          Submodule path 'libs/libbmp': checked out 'cf1c4e134a50d8e667f8db9f2ff5c19e97e80256'
          Initialized empty Git repository in /usr/local/builds/CI/H5/virga-ms/virga-ms/libs/mediaplayer/.git/

          stderr: fatal: reference is not a tree: 885b6998613918fa1d333f8741f2735cc542097a
          Unable to checkout '885b6998613918fa1d333f8741f2735cc542097a' in submodule path 'libs/mediaplayer'

          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:790)
          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:756)
          at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.submoduleUpdate(CliGitAPIImpl.java:429)
          at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1235)
          at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1205)
          at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
          at hudson.remoting.UserRequest.perform(UserRequest.java:118)
          at hudson.remoting.UserRequest.perform(UserRequest.java:48)
          at hudson.remoting.Request$2.run(Request.java:326)
          at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:679)
          {noformat}
          -----------
          And that is where the build log ends; on the git error stacktrace, no attempt is made to send a failure notification.
          Environment Original: Jenkins 1.528 on CentOS 6.3.

          java.runtime.name OpenJDK Runtime Environment
          java.runtime.version 1.6.0_24-b24

          [root@ci-h5-jenkins ~]# git --version
          git version 1.7.1

          Active (enabled) git plugins:
          git 1.4.0
          git-chooser-alternative 1.0
          git-client 1.1.2
          git-notes 0.0.4
          git-parameter 0.2
          git-server 1.2
          git-userContent 1.3
          gitlab-hook 0.2.12
          New: Jenkins 1.528 on CentOS 6.3.

          java.runtime.name OpenJDK Runtime Environment
          java.runtime.version 1.6.0_24-b24

          [root ~]# git --version
          git version 1.7.1

          Active (enabled) git plugins:
          git 1.4.0
          git-chooser-alternative 1.0
          git-client 1.1.2
          git-notes 0.0.4
          git-parameter 0.2
          git-server 1.2
          git-userContent 1.3
          gitlab-hook 0.2.12
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 154163 ] New: JNJira + In-Review [ 178710 ]
          Nicolas De Loof made changes -
          Assignee Original: Nicolas De Loof [ ndeloof ]

            Unassigned Unassigned
            owen_avn Owen Carter
            Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: