jenkinsci / jenkinsci/git-plugin

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

Open
#2,439 0 comments 0 reactions 0 assignees View on GitHub
component:git-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
694
Forks
1.1k
Avg merge
1h 29m
Merged PRs (30d)
3

Description

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

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.

---
Originally reported by owen_avn, imported from: No notification/email when submodule checkout fails


  • status: Open
  • priority: Minor
  • component(s): git-plugin
  • resolution: Unresolved
  • votes: 2
  • watchers: 1
  • imported: 2025-12-02

Raw content of original issue

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.

environment

```
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
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.