go: x/tools/go/internal/gcimporter: frequent failures without useful output

linux-ppc64le-power9osu …
…
haserrors/haserrors.go:2:22: cannot convert "" (untyped string constant) to untyped int
haserrors/haserrors.go:3:18: undeclared name: undefined
FAIL	golang.org/x/tools/go/internal/gcimporter	31.391s

https://build.golang.org/log/50ebd814481ff8a3c0976a9ec32602bdca86e185 https://build.golang.org/log/4f4af454dd05bbeccf2dd92c3d045a5d463f6889 https://build.golang.org/log/aeb6a5acd91e7cea78a93621877395caea90f785 https://build.golang.org/log/f4f7db7b08ee567d0086336920d3faf69363b080

(CC @griesemer, @stamblerre for gcimporter.)

These sorts of patterns would be a lot easier to spot if fetchlogs worked on the x repos (#35515; CC @andybons for prioritization).

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 29 (27 by maintainers)

Commits related to this issue

Most upvoted comments

@findleyr You are correct. I didn’t have the latest. Now if I try on various systems I have access to, I am not able to reproduce a failure with this test, even when using the same configuration as the build machines.

We can keep trying, but IMO this should not be a release blocker: the overlap between “too infrequent to debug” and “frequent enough to be a release blocker” should be empty.

I agree with that assessment. I think 7 failures per month is still too high long-term, but it’s far lower than the failure rate in May. I think it’s good enough not to be a release-blocker at this point.

Note that the openbsd failures are actually tracked separately by #36563, and the scaleway failures went away when the scaleway machines were removed in #45066.

So, filtering those out as well yields the following recent failures:

2021-06-25T19:21:47-00129ff/linux-arm64-packet 2021-06-25T19:21:17-fe2294a/linux-arm64-packet 2021-06-24T04:20:31-da404b5/linux-arm64-packet 2021-06-16T01:55:16-463a76b/linux-ppc64le-power9osu 2021-06-09T15:58:24-16e5f55/linux-arm64-packet 2021-06-09T14:15:26-9f230b5/linux-arm64-packet 2021-06-02T19:23:16-7922491/linux-arm64-packet 2021-05-24T16:41:39-e64a37c/linux-ppc64le-power9osu 2021-05-23T03:57:00-4061312/linux-ppc64le-power9osu 2021-05-21T23:19:31-1e0c960/linux-ppc64le-power9osu 2021-05-20T18:25:17-2275bb5/linux-ppc64le-buildlet 2021-05-20T18:25:17-2275bb5/linux-ppc64le-power9osu 2021-05-20T18:25:17-2275bb5/windows-386-2008 2021-05-20T15:46:45-3063790/linux-ppc64le-power9osu 2021-05-20T14:08:36-0886cdd/linux-ppc64le-power9osu 2021-05-19T23:21:03-46e69bf/linux-arm64-packet 2021-05-19T23:21:03-46e69bf/linux-ppc64le-power9osu 2021-05-19T23:19:09-f803486/linux-ppc64le-power9osu 2021-05-19T16:08:23-49064d2/linux-ppc64le-power9osu 2021-05-19T14:12:35-a0f4b7b/linux-arm64-packet 2021-05-19T14:12:35-a0f4b7b/linux-ppc64le-buildlet 2021-05-19T14:12:35-a0f4b7b/linux-ppc64le-power9osu 2021-05-19T14:12:23-f451690/linux-arm64-packet 2021-05-19T14:12:23-f451690/linux-ppc64le-power9osu 2021-05-18T18:21:53-17b3466/linux-ppc64le-buildlet 2021-05-18T18:21:53-17b3466/linux-ppc64le-power9osu 2021-05-18T02:12:20-6da3d7a/linux-ppc64le-buildlet 2021-05-18T02:12:20-6da3d7a/linux-ppc64le-power9osu 2021-05-17T17:18:20-8f301ca/linux-ppc64le-buildlet 2021-05-17T17:18:20-8f301ca/linux-ppc64le-power9osu 2021-05-13T17:35:42-09ab05b/linux-ppc64le-buildlet 2021-05-13T17:35:42-09ab05b/linux-ppc64le-power9osu 2021-05-13T13:20:04-cd1be5d/linux-ppc64le-buildlet 2021-05-13T13:20:04-cd1be5d/linux-ppc64le-power9osu 2021-05-12T22:01:29-57c3a74/linux-ppc64le-power9osu 2021-05-12T16:42:30-9dfac01/linux-ppc64le-power9osu 2021-05-11T20:42:14-be4aaae/linux-ppc64le-power9osu 2021-05-11T14:51:35-2db0265/linux-arm64-packet 2021-05-11T14:51:35-2db0265/linux-ppc64le-power9osu 2021-05-11T14:29:16-9cddb0e/linux-ppc64le-power9osu 2021-05-11T03:28:22-18795da/linux-ppc64le-power9osu 2021-05-10T23:22:37-79d39ff/linux-arm64-packet 2021-05-10T23:22:37-79d39ff/linux-ppc64le-power9osu 2021-05-10T23:21:19-fa05545/linux-arm64-packet 2021-05-10T23:21:19-fa05545/linux-ppc64le-power9osu 2021-05-10T21:57:30-5a66778/linux-arm64-packet 2021-05-10T21:57:30-5a66778/linux-ppc64le-power9osu

I.e. 7 in the last month. In our recent attempts to debug this, we’ve been unsuccessful at reproducing it with either slowbots or gomote. We can keep trying, but IMO this should not be a release blocker: the overlap between “too infrequent to debug” and “frequent enough to be a release blocker” should be empty. I think if we want to achieve a lower level of flakiness on the builders, we need to first make it easier to identify and diagnose flakes.

@bcmills, @stamblerre, @golang/release please let me know if you feel differently. I’d like to wait for consensus before removing the release-blocker label.

It may also be worthwhile to brainstorm about what tooling could make this easier. I have some ideas, but don’t want to distract the conversation from deciding whether this should be a release blocker.

I’m not sure if this is OOM-related. In local testing, I always get non-empty output for that, even when the process is terminated by the kernel instead of the runtime:

example.com$ go test ./oom
signal: killed
FAIL    example.com/oom 71.700s
FAIL

-- go.mod --
module example.com

go 1.14
-- oom/oom_test.go --
package oom_test

import (
        "math/rand"
        "runtime"
        "testing"
)

func TestOutOfMemory(t *testing.T) {
        var stuff [][]byte
        for {
                next := make([]byte, 1<<30)
                for i := 0; i < len(stuff); i += 4 << 10 {
                        next[i] = byte(rand.Int())
                }
                stuff = append(stuff, next)
        }
        runtime.KeepAlive(stuff)
}

Is it possible that the test is somehow invoking os.Exit itself with a nonzero exit code?