Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build tests are flakey #1205

Closed
bobcatfish opened this issue Aug 16, 2019 · 7 comments · Fixed by #1318
Closed

Build tests are flakey #1205

bobcatfish opened this issue Aug 16, 2019 · 7 comments · Fixed by #1318
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/bug Categorizes issue or PR as related to a bug.

Comments

@bobcatfish
Copy link
Collaborator

Expected Behavior

Our tests should only fail when there is a real error! Especially the "build" tests.

Actual Behavior

Sometimes the build tests fail like this (e.g. #1203 (comment)):

I0816 13:41:12.000] ==== RUNNING BUILD TESTS ====
I0816 13:41:12.000] =============================
I0816 13:41:12.008] ----------------------------------------------
I0816 13:41:12.009] ---- Checking links in the markdown files ----
I0816 13:41:12.009] ----------------------------------------------
I0816 13:42:23.513] level=error msg="Deadline exceeded: try increase it by passing --deadline option"

Steps to Reproduce the Problem

Not sure! I saw this happen locally (i.e. when running the release pipeline) to @dibyom as well - it seems like if you run the build tests enough this happens sometimes.

@bobcatfish bobcatfish added kind/bug Categorizes issue or PR as related to a bug. help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. labels Aug 16, 2019
@bobcatfish bobcatfish added this to the Pipelines 0.7 🐱 milestone Aug 16, 2019
@vdemeester
Copy link
Member

This is the linters (golangci-lint) that time outs.. this might happen when they are scheduled on a slow node (or loaded node). We could bump the timeout for those, or split them to a job on their own 🤓

@bobcatfish
Copy link
Collaborator Author

Saw this when trying to run automated releases too (#860).

[lint : build-step-git-source-51fc6fe0-ce88-11e9-b641-0a580a340481-extr] {"level":"info","ts":1567542061.106349,"logger":"fallback-logger","caller":"git/git.go:105","msg":"Successfully cloned https://github.com/tektoncd/pipeline.git @ master in path /workspace/src/github.com/tektoncd/pipeline"}

[lint : build-step-lint] level=info msg="[config_reader] Config search paths: [./ /workspace/src/github.com/tektoncd/pipeline /workspace/src/github.com/tektoncd /workspace/src/github.com /workspace/src /workspace /]"
[lint : build-step-lint] level=info msg="[config_reader] Used config file .golangci.yml"
[lint : build-step-lint] level=info msg="[lintersdb] Active 12 linters: [deadcode errcheck gofmt goimports gosimple govet ineffassign staticcheck structcheck typecheck unused varcheck]"
[lint : build-step-lint] level=info msg="[lintersdb] Optimized sublinters [staticcheck gosimple unused] into metalinter megacheck"
[lint : build-step-lint] level=info msg="[loader] Go packages loading at mode load types and syntax took 20.52306475s"
[lint : build-step-lint] level=info msg="[loader] SSA repr building timing: packages building 234.47889ms, total 14.029861259s"
[lint : build-step-lint] level=info msg="[runner] worker.1 took 1m5.703529801s with stages: govet: 1m5.703488009s"
[lint : build-step-lint] level=info msg="[runner] worker.4 took 1m8.849588545s with stages: gofmt: 1m8.849572453s"
[lint : build-step-lint] level=info msg="Memory: 222 samples, avg is 720.2MB, max is 3694.5MB"
[lint : build-step-lint] level=info msg="Execution took 1m46.749045981s"
[lint : build-step-lint] level=info msg="[runner] worker.2 took 1m17.3554252s with stages: goimports: 1m17.355393415s"
[lint : build-step-lint] level=info msg="[runner] worker.3 took 1m34.527370732s with stages: megacheck: 1m34.527323136s"
[lint : build-step-lint] level=info msg="[runner] Workers idle times: #1: 28.819682124s, #2: 17.162955784s, #4: 25.601083978s"
[lint : build-step-lint] level=info msg="[runner] processing took 55.532µs with stages: max_same_issues: 29.937µs, nolint: 19.732µs, cgo: 1.419µs, skip_dirs: 1.337µs, max_from_linter: 465ns, filename_unadjuster: 311ns, skip_files: 276ns, path_prettifier: 257ns, path_shortener: 249ns, identifier_marker: 247ns, source_code: 241ns, diff: 232ns, autogenerated_exclude: 222ns, uniq_by_line: 186ns, exclude: 182ns, max_per_file_from_linter: 156ns, exclude-rules: 83ns"
[lint : build-step-lint] level=info msg="File cache stats: 0 entries of total size 0B"
[lint : build-step-lint] level=error msg="Deadline exceeded: try increase it by passing --deadline option"

Would be frustrating to have the nightly build fail b/c of this!

@vdemeester
Copy link
Member

@bobcatfish yeah we might need to increase the deadline (can be done in the configuration file)

bobcatfish added a commit to bobcatfish/pipeline that referenced this issue Sep 4, 2019
This Pipeline will be triggered via prow over in the tektoncd/plumbing
repo every night. It will create releases of all images normally
released when doing official releases, plus also the image used for
building with ko, and tag them with the date and commit they were built
at, and will create the release.yaml as well.

This Pipeline is missing a few things that are in the manual release
Pipeline - due to tektoncd#1124 unit tests have a race condition, due to tektoncd#1205
the linting is flakey and it would be frustrating to lose a whole
nightly release, and finally due to using v0.3.1 it's not possible to
use workingDir, which is required by the golang build Task.

The Pipelines and Tasks have been updated to work with Tekton Pipelines
v0.3.1 because that's what we're using in our official cluster (since
currently Prow requires it).

Made release instructions more oriented toward someone actually
making a release vs. a random person trying to run the same pipeline
against their own infrastructure.

Removed example Runs b/c it's much simpler to invoke
via `tkn`, or Prow (these were falling out of date with how we were
actually using the Pipelines/Tasks as well).

Fixes tektoncd#860
bobcatfish added a commit to bobcatfish/pipeline that referenced this issue Sep 4, 2019
This Pipeline will be triggered via prow over in the tektoncd/plumbing
repo every night. It will create releases of all images normally
released when doing official releases, plus also the image used for
building with ko, and tag them with the date and commit they were built
at, and will create the release.yaml as well.

This Pipeline is missing a few things that are in the manual release
Pipeline - due to tektoncd#1124 unit tests have a race condition, due to tektoncd#1205
the linting is flakey and it would be frustrating to lose a whole
nightly release, and finally due to using v0.3.1 it's not possible to
use workingDir, which is required by the golang build Task.

The Pipelines and Tasks have been updated to work with Tekton Pipelines
v0.3.1 because that's what we're using in our official cluster (since
currently Prow requires it).

Made release instructions more oriented toward someone actually
making a release vs. a random person trying to run the same pipeline
against their own infrastructure.

Removed example Runs b/c it's much simpler to invoke
via `tkn`, or Prow (these were falling out of date with how we were
actually using the Pipelines/Tasks as well).

Removed the `gcs-uploader-image` PipelineResource which is no longer
being used.

Fixes tektoncd#860
tekton-robot pushed a commit that referenced this issue Sep 16, 2019
This Pipeline will be triggered via prow over in the tektoncd/plumbing
repo every night. It will create releases of all images normally
released when doing official releases, plus also the image used for
building with ko, and tag them with the date and commit they were built
at, and will create the release.yaml as well.

This Pipeline is missing a few things that are in the manual release
Pipeline - due to #1124 unit tests have a race condition, due to #1205
the linting is flakey and it would be frustrating to lose a whole
nightly release, and finally due to using v0.3.1 it's not possible to
use workingDir, which is required by the golang build Task.

The Pipelines and Tasks have been updated to work with Tekton Pipelines
v0.3.1 because that's what we're using in our official cluster (since
currently Prow requires it).

Made release instructions more oriented toward someone actually
making a release vs. a random person trying to run the same pipeline
against their own infrastructure.

Removed example Runs b/c it's much simpler to invoke
via `tkn`, or Prow (these were falling out of date with how we were
actually using the Pipelines/Tasks as well).

Removed the `gcs-uploader-image` PipelineResource which is no longer
being used.

Fixes #860
@bobcatfish
Copy link
Collaborator Author

I think this happened again #1475

@bobcatfish bobcatfish reopened this Oct 25, 2019
@bobcatfish bobcatfish removed this from the Pipelines 0.9 🐱 milestone Nov 25, 2019
@bobcatfish
Copy link
Collaborator Author

@vdemeester pointed out this is 5 min in the cli repo

@vdemeester
Copy link
Member

Seems like #1613 got merge, so we can safely close this one
/close

@tekton-robot
Copy link
Collaborator

@vdemeester: Closing this issue.

In response to this:

Seems like #1613 got merge, so we can safely close this one
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants