-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
-
False
-
-
False
Description of problem:
The s2i-go-pipeline-run fails during the Git clone phase when fetching the repository https://github.com/chmouel/go-simple-uploader.git using the Tekton git-init container. The failure occurs while running git fetch with --depth=1 and submodules enabled.
The error manifests as low-level filesystem I/O failures such as:
- fatal: fsync error on '.git/objects/pack/...': Input/output error
- fatal: write error: Bad file descriptor
- fatal: fetch-pack: invalid index-pack output
The failure has been observed across different base images (ubi7 and ubi9) and multiple pipeline runs using the same commit SHA, indicating a likely infrastructure or storage-related issue rather than a repository-specific problem.
Workaround:
- Re-running the pipeline sometimes succeeds.
- No permanent workaround identified. Disabling shallow clone or submodules may reduce frequency but is not validated.
Prerequisites (if any, like setup, operators/versions):
- OpenShift cluster with Tekton Pipelines installed
- Tekton git-clone task (tektoncd-catalog)
- S2I Go pipeline (s2i-go)
- Base images tested: s2i-go-1.18-ubi7, s2i-go-1.18-ubi9
Steps to Reproduce
- Trigger s2i-go-pipeline-run with Git source https://github.com/chmouel/go-simple-uploader.git
- Use commit SHA: e8e751f5e189ee493a43948b667f665f8d7e1057
- Allow pipeline to reach the Git clone phase
- Observe pipeline logs during git-init execution
Actual results:
The PipelineRun fails with logs showing errors during the Git clone phase. The failure occurs while fetching the repository and results in a fatal exit status.
Logs observed during the failure:
fatal: fsync error on '.git/objects/pack/tmp_pack_YOA5xB': Input/output error
fatal: fetch-pack: invalid index-pack output
exit status 128
fatal: write error: Bad file descriptor
fatal: fetch-pack: invalid index-pack output
exit status 128
The git-init container terminates with:
Error fetching git repository: failed to fetch [<commit-sha>]: exit status 128
Expected results:
- Git repository should clone successfully
- Pipeline should proceed to subsequent build steps without failure
Reproducibility (Always/Intermittent/Only Once):
Acceptance criteria:
Definition of Done:
Build Details:
Additional info (Such as Logs, Screenshots, etc):
fatal: fsync error on '.git/objects/pack/tmp_pack_YOA5xB': Input/output error
fatal: fetch-pack: invalid index-pack output
exit status 128
fatal: write error: Bad file descriptor
fatal: fetch-pack: invalid index-pack output
exit status 128
clone-git-repo STEP-PREPARE-AND-RUN 2026-01-19T06:12:55.295139534Z Running Script /scripts/prepare.sh 2026-01-19T06:12:55.387758495Z ---> Phase: Preparing the filesystem before cloning the repository... 2026-01-19T06:12:55.387955730Z ---> Phase: Deleting all contents of checkout-dir '/workspace/output/s2i-go-1.18-ubi9'... 2026-01-19T06:12:55.388634127Z Running Script /scripts/git-run.sh 2026-01-19T06:12:55.395389336Z ---> Phase: Setting output workspace as safe directory ('/workspace/output')... 2026-01-19T06:12:55.488390483Z ---> Phase: Setting up HTTP_PROXY=''... 2026-01-19T06:12:55.488447433Z ---> Phase: Settting up HTTPS_PROXY=''... 2026-01-19T06:12:55.488447433Z ---> Phase: Setting up NO_PROXY=''... 2026-01-19T06:12:55.488581634Z ---> Phase: Cloning 'https://github.com/chmouel/go-simple-uploader.git' into '/workspace/output/s2i-go-1.18-ubi9'... 2026-01-19T06:12:55.488667011Z + exec git-init -url=https://github.com/chmouel/go-simple-uploader.git -revision=e8e751f5e189ee493a43948b667f665f8d7e1057 -refspec= -path=/workspace/output/s2i-go-1.18-ubi9 -sslVerify=true -submodules=true -depth=1 -sparseCheckoutDirectories= 2026-01-19T06:12:55.894084808Z {"level":"info","ts":1768803175.8939614,"caller":"git/git.go:384","msg":"Retrying operation (attempt 1)"} 2026-01-19T06:12:58.294842278Z {"level":"error","ts":1768803178.2947364,"caller":"git/git.go:56","msg":"Error running git [fetch --recurse-submodules=yes --depth=1 origin --update-head-ok --force e8e751f5e189ee493a43948b667f665f8d7e1057]: exit status 128\nfatal: fsync error on '.git/objects/pack/tmp_pack_ZoQntA': Input/output error\nfatal: fetch-pack: invalid index-pack output\n","stacktrace":"github.com/tektoncd-catalog/git-clone/git-init/git.run\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/git/git.go:56\ngithub.com/tektoncd-catalog/git-clone/git-init/git.Fetch.func1\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/git/git.go:192\ngithub.com/tektoncd-catalog/git-clone/git-init/git.retryWithBackoff[...]\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/git/git.go:385\ngithub.com/tektoncd-catalog/git-clone/git-init/git.Fetch\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/git/git.go:191\nmain.main\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/main.go:76\nruntime.main\n\t/usr/lib/golang/src/runtime/proc.go:283"} 2026-01-19T06:12:58.294842278Z {"level":"fatal","ts":1768803178.2948122,"caller":"git-init/main.go:77","msg":"Error fetching git repository: failed to fetch [e8e751f5e189ee493a43948b667f665f8d7e1057]: exit status 128","stacktrace":"main.main\n\t/go/src/github.com/tektoncd-catalog/git-clone/image/git-init/main.go:77\nruntime.main\n\t/usr/lib/golang/src/runtime/proc.go:283"}