Open lbernick opened 1 year ago
Yup, because of that. I missed that TODO
. Whoops.
A brief explanation of why this issue is occurring:
When Pipelines sees a reference to a remote task or a remote pipeline, it creates a resolution request object that is labeled with the resolver that should handle the request. Resolvers, including the git resolver, watch for resolution requests to be created that they can handle. The git resolver will time out fetching something from git after the time configured in the git resolver feature flags. However, pipelines will cancel the resolution request after 1 minute. So if the git timeout is > 1m, the git resolver won't time out after 1m, but the request will get timed out anyway.
One idea for solving this is to allow the resolver to update the resolution request with something indicating "resolution is in progress, please don't time this out". The global timeout would then only apply if the resolver hadn't updated the resolution request at all.
/assign @EmmaMunley
I can take this on. I think we can start with making the global timeout configurable, and later remove the git timeout if it's too confusing.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
with a justification.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen
with a justification.
/lifecycle stale
Send feedback to tektoncd/plumbing.
/lifecycle frozen
/remove-lifecycle stale
Please prioritize this issue since this is impacting timely completion of many pipeline runs relying on remote tasks
Expected Behavior
Git resolution times out after the amount of time specified by "fetch-timeout" in the git-resolver-config configmap in the tekton-pipelines-resolvers namespace.
Actual Behavior
Resolution times out after 1m. Possibly because of this?
Additional Info
Kubernetes version:
Output of
kubectl version
:Tekton Pipeline version:
Output of
tkn version
orkubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'