Golangci-lint: Internal error, out of memory

Created on 4 Apr 2019  路  14Comments  路  Source: golangci/golangci-lint

Example: https://golangci.com/r/github.com/istio/istio/pulls/13041

Please include the following information:

  1. Version of golangci-lint: 1.15.x
  2. Config file: https://github.com/istio/istio/blob/master/.golangci.yml
  3. Verbose output of running: See link above
$ GOLANGCI_COM_RUN=1 golangci-lint run --out-format=json --issues-exit-code=0 --deadline=5m --new=false --new-from-rev= --new-from-patch=../changes.patch
    fatal error: runtime: out of memory

    runtime stack:
    runtime.throw(0xe79fc5, 0x16)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/panic.go:617 +0x72
    runtime.sysMap(0xc364000000, 0x4000000, 0x17fd0b8)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mem_linux.go:170 +0xc7
    runtime.(*mheap).sysAlloc(0x17dec20, 0x2000, 0x17dec30, 0x1)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/malloc.go:633 +0x1cd
    runtime.(*mheap).grow(0x17dec20, 0x1, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mheap.go:1232 +0x42
    runtime.(*mheap).allocSpanLocked(0x17dec20, 0x1, 0x17fd0c8, 0x7f3037830fc8)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mheap.go:1150 +0x3a7
    runtime.(*mheap).alloc_m(0x17dec20, 0x1, 0x7ffc7cd0003e, 0x7f3037830fc8)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mheap.go:977 +0xc2
    runtime.(*mheap).alloc.func1()
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mheap.go:1048 +0x4c
    runtime.systemstack(0x4591c9)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/asm_amd64.s:351 +0x66
    runtime.mstart()
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/proc.go:1153

    goroutine 24965 [running]:
    runtime.systemstack_switch()
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/asm_amd64.s:311 fp=0xc0e95a71a0 sp=0xc0e95a7198 pc=0x4592c0
    runtime.(*mheap).alloc(0x17dec20, 0x1, 0x1003e, 0xc363fe5d40)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mheap.go:1047 +0x8a fp=0xc0e95a71f0 sp=0xc0e95a71a0 pc=0x42493a
    runtime.(*mcentral).grow(0x17dff20, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mcentral.go:256 +0x95 fp=0xc0e95a7238 sp=0xc0e95a71f0 pc=0x417875
    runtime.(*mcentral).cacheSpan(0x17dff20, 0xc363fe5d40)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mcentral.go:106 +0x2ff fp=0xc0e95a7298 sp=0xc0e95a7238 pc=0x41737f
    runtime.(*mcache).refill(0x7f3065422d98, 0x3e)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/mcache.go:135 +0x86 fp=0xc0e95a72b8 sp=0xc0e95a7298 pc=0x416e16
    runtime.(*mcache).nextFree(0x7f3065422d98, 0xc363fd013e, 0x1, 0x1, 0x1)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/malloc.go:786 +0x88 fp=0xc0e95a72f0 sp=0xc0e95a72b8 pc=0x40b718
    runtime.mallocgc(0x400, 0xd1acc0, 0x851601, 0xc363fd0000)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/malloc.go:939 +0x76e fp=0xc0e95a7390 sp=0xc0e95a72f0 pc=0x40c02e
    runtime.growslice(0xd1acc0, 0xc3638cba00, 0x20, 0x20, 0x21, 0xc3638cba00, 0x10, 0x20)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/slice.go:181 +0x1e6 fp=0xc0e95a73f8 sp=0xc0e95a7390 pc=0x442c66
    go/parser.(*parser).parseStmtList(0xc363fd0000, 0xc3638cba00, 0x20, 0x20)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/parser.go:1068 +0x10e fp=0xc0e95a7458 sp=0xc0e95a73f8 pc=0x849dce
    go/parser.(*parser).parseBody(0xc363fd0000, 0xc363fe25c0, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/parser.go:1082 +0x15f fp=0xc0e95a74e8 sp=0xc0e95a7458 pc=0x849fcf
    go/parser.(*parser).parseFuncDecl(0xc363fd0000, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/parser.go:2441 +0x366 fp=0xc0e95a75a8 sp=0xc0e95a74e8 pc=0x8530e6
    go/parser.(*parser).parseDecl(0xc363fd0000, 0xc000095770, 0x0, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/parser.go:2485 +0x155 fp=0xc0e95a7600 sp=0xc0e95a75a8 pc=0x853315
    go/parser.(*parser).parseFile(0xc363fd0000, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/parser.go:2540 +0x310 fp=0xc0e95a76f0 sp=0xc0e95a7600 pc=0x8536f0
    go/parser.ParseFile(0xc363da7680, 0xc00355ac00, 0x3b, 0xcaab20, 0xc363db0e20, 0x4, 0x0, 0x0, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/parser/interface.go:117 +0x183 fp=0xc0e95a7768 sp=0xc0e95a76f0 pc=0x8428f3
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports.parse(0xc363da7680, 0xc00355ac00, 0x3b, 0xc354308800, 0x3455, 0x3655, 0x164bb60, 0x0, 0x0, 0xfbef00, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports/imports.go:138 +0xee fp=0xc0e95a7820 sp=0xc0e95a7768 pc=0x9e1dbe
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports.process(0xc00355ac00, 0x3b, 0xc354308800, 0x3455, 0x3655, 0x164bb60, 0xc3638c7d80, 0xc363ea6000, 0x1f64, 0x3b2e, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports/imports.go:66 +0x101 fp=0xc0e95a7958 sp=0xc0e95a7820 pc=0x9e1531
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports.Process(...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/imports/imports.go:50
    github.com/golangci/golangci-lint/vendor/github.com/golangci/gofmt/goimports.Run(0xc00355ac00, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/golangci/gofmt/goimports/golangci.go:17 +0x148 fp=0xc0e95a7a28 sp=0xc0e95a7958 pc=0xa00958
    github.com/golangci/golangci-lint/pkg/golinters.Gofmt.Run(0x1, 0xfd5360, 0xc000073aa0, 0xc0a7a5f3b0, 0xc0ab317c70, 0x1, 0x1, 0xfdc200, 0xc0ab2e3e80)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/golinters/gofmt.go:293 +0x112 fp=0xc0e95a7b50 sp=0xc0e95a7a28 pc=0xbdb4e2
    github.com/golangci/golangci-lint/pkg/golinters.(*Gofmt).Run(0xc0003df341, 0xfd5360, 0xc000073aa0, 0xc0a7a5f3b0, 0xc0aa125230, 0xc0495d8ae0, 0x17e2d20, 0xc007e71911, 0x4)
        <autogenerated>:1 +0x61 fp=0xc0e95a7ba8 sp=0xc0e95a7b50 pc=0xbe77c1
    github.com/golangci/golangci-lint/pkg/lint.(*Runner).runLinterSafe(0xc071780ee0, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc000588e80, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:112 +0x16a fp=0xc0e95a7ca8 sp=0xc0e95a7ba8 pc=0xc0846a
    github.com/golangci/golangci-lint/pkg/lint.Runner.runWorker.func1()
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:146 +0x64 fp=0xc0e95a7d18 sp=0xc0e95a7ca8 pc=0xc0a144
    github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0a7a39900, 0xe16ca9, 0x9, 0xc0047d4e40)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:75 +0x50 fp=0xc0e95a7d78 sp=0xc0e95a7d18 pc=0xc03730
    github.com/golangci/golangci-lint/pkg/lint.Runner.runWorker(0xc0ab022120, 0x11, 0x11, 0xfdf320, 0xc0ab340f30, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc0ab374f60, 0xc0ab375020, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:145 +0x23b fp=0xc0e95a7ee0 sp=0xc0e95a7d78 pc=0xc0882b
    github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers.func1(0xc0ab3ca960, 0xc0ab3aca20, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc0ab374f60, 0xc0ab375020, 0xc0ab375080, 0x4, 0x4, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:200 +0x163 fp=0xc0e95a7f88 sp=0xc0e95a7ee0 pc=0xc0a373
    runtime.goexit()
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc0e95a7f90 sp=0xc0e95a7f88 pc=0x45b211
    created by github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:197 +0x1ab

    goroutine 1 [chan receive]:
    github.com/golangci/golangci-lint/pkg/printers.JSON.Print(0xc00040f3e0, 0xfd5360, 0xc000073aa0, 0xc0ab375200, 0xc00040f380, 0xc0ab375200)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/printers/json.go:30 +0xab
    github.com/golangci/golangci-lint/pkg/commands.(*Executor).runAndPrint(0xc00040f380, 0xfd5360, 0xc000073aa0, 0xc000073a40, 0x0, 0x6, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/commands/run.go:350 +0x253
    github.com/golangci/golangci-lint/pkg/commands.(*Executor).executeRun(0xc00040f380, 0xc0005b2f00, 0xc000073a40, 0x0, 0x6)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/commands/run.go:398 +0x153
    github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra.(*Command).execute(0xc0005b2f00, 0xc000073980, 0x6, 0x6, 0xc0005b2f00, 0xc000073980)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra/command.go:760 +0x2ae
    github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc0005b2c80, 0x6, 0xfa8bf0, 0x7)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra/command.go:846 +0x2ec
    github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra.(*Command).Execute(...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/spf13/cobra/command.go:794
    github.com/golangci/golangci-lint/pkg/commands.(*Executor).Execute(...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/commands/executor.go:107
    main.main()
        /home/travis/gopath/src/github.com/golangci/golangci-lint/cmd/golangci-lint/main.go:20 +0x80

    goroutine 24970 [chan receive]:
    github.com/golangci/golangci-lint/pkg/commands.(*Executor).setExitCodeIfIssuesFound.func1(0xc0ab3751a0, 0xc0ab375200, 0xc00040f380)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/commands/run.go:309 +0x134
    created by github.com/golangci/golangci-lint/pkg/commands.(*Executor).setExitCodeIfIssuesFound
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/commands/run.go:307 +0x71

    goroutine 24964 [running]:
        goroutine running on other thread; stack unavailable
    created by github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:197 +0x1ab

    goroutine 24963 [runnable]:
    syscall.Syscall6(0x106, 0xffffffffffffff9c, 0xc363793060, 0xc363e41078, 0x0, 0x0, 0x0, 0x0, 0xc363e41078, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/syscall/asm_linux_amd64.s:44 +0x5
    syscall.fstatat(0xffffffffffffff9c, 0xc363793040, 0x1e, 0xc363e41078, 0x0, 0x0, 0x1e)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/syscall/zsyscall_linux_amd64.go:1520 +0xcb
    syscall.Stat(...)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/syscall/syscall_linux_amd64.go:64
    os.statNolog(0xc363793040, 0x1e, 0xc363793040, 0x1e, 0x1, 0xc363793040)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/os/stat_unix.go:31 +0x6f
    os.Stat(0xc363793040, 0x1e, 0x3, 0x3, 0xc363793040, 0x1e)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/os/stat.go:13 +0x4d
    go/build.(*Context).isDir(0x17d8c20, 0xc363793040, 0x1e, 0x3)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/build/build.go:131 +0x4a
    go/build.(*Context).Import(0x17d8c20, 0xc08417e561, 0x16, 0xc0030f7840, 0x32, 0x3, 0xcb5260, 0x40bba9, 0x71)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/build/build.go:671 +0x5b7f
    go/build.Import(...)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/build/build.go:1280
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/internal/gcimporter.FindPkg(0xc08417e561, 0x16, 0xc0030f7840, 0x32, 0xc0030f7840, 0x40894d, 0xc0030f7840, 0x6a17b17771207df0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go:56 +0x330
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/gcexportdata.Find(...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go:45
    github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/gcexportdata.importer.ImportFrom(0xc000160e80, 0xc36322d620, 0xc08417e561, 0x16, 0xc0030f7840, 0x32, 0x0, 0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/golang.org/x/tools/go/gcexportdata/importer.go:40 +0x7f
    go/types.(*Checker).importPackage(0xc0006adc20, 0x35ebcef, 0xc08417e561, 0x16, 0xc0030f7840, 0x32, 0xc363bc5c20)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/types/resolver.go:156 +0x180
    go/types.(*Checker).collectObjects(0xc0006adc20)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/types/resolver.go:256 +0x15f9
    go/types.(*Checker).checkFiles(0xc0006adc20, 0xc362b938c8, 0x1, 0x1, 0x0, 0x0)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/types/check.go:252 +0x97
    go/types.(*Checker).Files(...)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/types/check.go:245
    go/types.(*Config).Check(0xc36322b700, 0xc084079310, 0x4, 0xc000160e80, 0xc362b938c8, 0x1, 0x1, 0xc3632304b0, 0x0, 0xc36308f790, ...)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/go/types/api.go:351 +0x11c
    github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1.(*pkg).typeCheck(0xc363230460, 0x4cb8a3, 0xc08b8725a0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1/lint.go:324 +0x313
    github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1.(*pkg).lint(0xc363230460, 0xc36322d5f0, 0xc0030f7840, 0x3a)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1/lint.go:194 +0x40
    github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1.(*Linter).LintASTFiles(0xc216aa9990, 0xc362b938b8, 0x1, 0x1, 0xc000160e80, 0x1, 0xc362b938b8, 0x0, 0x1, 0xc00355b900)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/vendor/github.com/golangci/lint-1/lint.go:156 +0x7f0
    github.com/golangci/golangci-lint/pkg/golinters.Golint.lintPkg(0x0, 0xc362b938b8, 0x1, 0x1, 0xc000160e80, 0xc000160e80, 0x0, 0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/golinters/golint.go:50 +0x74
    github.com/golangci/golangci-lint/pkg/golinters.Golint.Run(0xfd5360, 0xc000073aa0, 0xc0ab3cef50, 0xc0ab317c70, 0x1, 0x1, 0xfdc200, 0xc0ab2e3e80)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/golinters/golint.go:34 +0x130
    github.com/golangci/golangci-lint/pkg/lint.(*Runner).runLinterSafe(0xc0781ffee0, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc000588600, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:112 +0x16a
    github.com/golangci/golangci-lint/pkg/lint.Runner.runWorker.func1()
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:146 +0x64
    github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc0ab3d0050, 0xdf71f7, 0x6, 0xc001ff0e40)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:75 +0x50
    github.com/golangci/golangci-lint/pkg/lint.Runner.runWorker(0xc0ab022120, 0x11, 0x11, 0xfdf320, 0xc0ab340f30, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc0ab374f60, 0xc0ab375020, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:145 +0x23b
    github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers.func1(0xc0ab3ca960, 0xc0ab3aca20, 0xfd5360, 0xc000073aa0, 0xc0aafb6a80, 0xc0ab374f60, 0xc0ab375020, 0xc0ab375080, 0x4, 0x4, ...)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:200 +0x163
    created by github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:197 +0x1ab

    goroutine 24969 [chan receive]:
    github.com/golangci/golangci-lint/pkg/lint.collectIssues.func1(0xc0ab3751a0, 0xc0ab375140)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:267 +0x8f
    created by github.com/golangci/golangci-lint/pkg/lint.collectIssues
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:264 +0x62

    goroutine 24968 [chan receive]:
    github.com/golangci/golangci-lint/pkg/lint.Runner.processLintResults.func1(0xc0ab3aca50, 0xc0ab375140, 0xc0ab375020)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:230 +0x194
    created by github.com/golangci/golangci-lint/pkg/lint.Runner.processLintResults
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:224 +0xb6

    goroutine 24967 [semacquire]:
    sync.runtime_Semacquire(0xc0ab3ca968)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/runtime/sema.go:56 +0x39
    sync.(*WaitGroup).Wait(0xc0ab3ca960)
        /home/travis/.gimme/versions/go1.12.1.linux.amd64/src/sync/waitgroup.go:130 +0x65
    github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers.func2(0xc0ab3ca960, 0xc0ab375020, 0xc0ab3aca20, 0xc0ab375080, 0x4, 0x4)
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:212 +0x2f
    created by github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:211 +0x2d9

    goroutine 24966 [running]:
        goroutine running on other thread; stack unavailable
    created by github.com/golangci/golangci-lint/pkg/lint.(*Runner).runWorkers
        /home/travis/gopath/src/github.com/golangci/golangci-lint/pkg/lint/runner.go:197 +0x1ab

All 14 comments

I've been seeing the same symptoms since upgrading to golangci-lint v1.16.0 on our repositories at Pulumi:

We found that disabling the staticcheck linter fixed this in CI temporarily: https://github.com/pulumi/pulumi-aws/commit/8a24c9afc2ce5380b3433b18f817eb1348f52de7

I've also found this with megacheck on some repositories.

Same issue for our repository in v1.16.0, out of memory with 32Go of memory. No problem in v1.15.0.

Hi, thank you for the issue!
I'll investigate. As a workaround, you can tweak GOGC

Thanks @jirfag! I'll test this in our environment this week.

If it helps anyone: I was on golangci 1.12 and had severe memory/performance regressions after updating to Go 1.12. Upgrading to golangci 1.16.0 fixed it for me.

Same problem with go 1.12 and golanci-lint 1.17.1.

1.15.0 => ~3Go RAM used
1.16.0 => 22Go
1.17.1 => 22Go

For the same returned warnings and errors. Tested in a repository with ~4000 Go files.

+1 to this issue.

we also had this Issue in minikube: see logs at: https://travis-ci.org/kubernetes/minikube/jobs/562528986

@jirfag it worth noting that in minikube we are already using GOGC = 10 but we still get the issue !

here is from our current Makefile
GOLINT_GOGC ?= 10

    GOGC=${GOLINT_GOGC} ./out/linters/golangci-lint run \
      --concurrency ${GOLINT_JOBS} \
      --deadline 4m \
      --build-tags "${MINIKUBE_INTEGRATION_BUILD_TAGS}" \
      --enable goimports,gocritic,golint,gocyclo,interfacer,misspell,nakedret,stylecheck,unconvert,unparam \
      --exclude 'variable on range scope.*in function literal|ifElseChain' \
      ./...

We also have an issue with memory

For those still hitting this, we had the same issue on containerd and found that GOGC=75 and pinning to 1.18 right now works on travis-ci and appveyor.

https://github.com/containerd/containerd/pull/3657

hi, thank you!
but let's continue in #337: it's difficult to manage repository when there are many duplicates

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lnshi picture lnshi  路  4Comments

cyriltovena picture cyriltovena  路  5Comments

jirfag picture jirfag  路  3Comments

DarthHater picture DarthHater  路  4Comments

bacongobbler picture bacongobbler  路  4Comments