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

Can't run linter golint: no AST for file #467

Closed
dvyukov opened this issue Mar 28, 2019 · 4 comments
Closed

Can't run linter golint: no AST for file #467

dvyukov opened this issue Mar 28, 2019 · 4 comments

Comments

@dvyukov
Copy link

dvyukov commented Mar 28, 2019

$ golangci-lint --version
golangci-lint has version v1.15.0-21-gf516771 built from f516771 on Thu Mar 28 14:06:02 CET 2019
$ golangci-lint run ./tools/syz-trace2syz/...
WARN [runner] Can't run linter golint: no AST for file /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/lex.go in cache: {m:map[/usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/intermediate_types.go:0xc062142ff0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/parser.go:0xc062143050 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/parser_test.go:0xc0621430b0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/strace.y:0xc062143080 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/straceLex.rl:0xc062143020 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/call_selector.go:0xc0621430e0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/call_selector_test.go:0xc062143410 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/fuzz.go:0xc062143140 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/generate_unions.go:0xc062143230 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/proggen.go:0xc062143290 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/proggen_test.go:0xc062143440 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/return_cache.go:0xc062143380 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/unsupported_calls.go:0xc0621433e0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/trace2syz.go:0xc062142fc0] s:[0xc062142fc0 0xc062143050 0xc0621430e0 0xc062143290 0xc062143230 0xc062143380 0xc062143410 0xc062143440 0xc062142ff0 0xc0621433e0 0xc062143020 0xc062143080 0xc0621430b0 0xc062143140] log:{rd:0xc0007193e0 tags:[loader astcache] origLog:0xc07ce988e0}} 
syzkaller$ go version && go env
go version go1.12 linux/amd64
GOARCH="amd64"
GOBIN=""
GOCACHE="/usr/local/google/home/dvyukov/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/usr/local/google/home/dvyukov/src/gopath"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/google/home/dvyukov/go1.12"
GOTMPDIR="/usr/local/google/home/dvyukov/tmp/go-build"
GOTOOLDIR="/usr/local/google/home/dvyukov/go1.12/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/usr/local/google/home/dvyukov/tmp/go-build/go-build154691923=/tmp/go-build -gno-record-gcc-switches"
syzkaller$ 
syzkaller$ 
syzkaller$ 
syzkaller$ cat .golangci.yml
# Copyright 2018 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

run:
  deadline: 8m
  skip-dirs:
    - pkg/kd
    - pkg/ifuzz/generated
    - sys/akaros/gen
    - sys/freebsd/gen
    - sys/fuchsia/gen
    - sys/linux/gen
    - sys/netbsd/gen
    - sys/openbsd/gen
    - sys/windows/gen
    - sys/test/gen
    - sys/trusty/gen
  skip-files:
   - "(tools/syz-trace2syz/parser/(lex|strace).go)"

linters:
  enable:
    - lll
    - gofmt
    - golint
    - structcheck
    - megacheck
  disable-all: true
#  disable:
#    - unconvert
#    - deadcode
#    - goconst
#    - unused
#    - gosimple
#    - varcheck
#    - misspell
#    - gocyclo
#    - vet
#    - vetshadow
#    - megacheck
#    - govet

linters-settings:
  lll:
    line-length: 120
    tab-width: 1

issues:
  # List of regexps of issue texts to exclude, empty list by default.
  # But independently from this option we use default exclude patterns,
  # it can be disabled by `exclude-use-default: false`. To list all
  # excluded by default patterns execute `golangci-lint run --help`
  exclude:
    - "(sys/.*/init.*|sys/targets/common.go).* don't use ALL_CAPS in Go names"
    - "exported .* should have comment"
    - "comment on .* should be of the form"
    - "declaration of \"err\" shadows"

  exclude-rules:
    # Exclude some linters from running on tests files.
    - path: (pkg/csource/generated.go|pkg/report/linux.go|pkg/build/linux_generated.go)
      linters:
        - lll

  # Independently from option `exclude` we use default exclude patterns,
  # it can be disabled by this option. To list all
  # excluded by default patterns execute `golangci-lint run --help`.
  # Default value for this option is true.
  exclude-use-default: false
level=info msg="[config_reader] Config search paths: [./ /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller /usr/local/google/home/dvyukov/src/gopath/src/github.com/google /usr/local/google/home/dvyukov/src/gopath/src/github.com /usr/local/google/home/dvyukov/src/gopath/src /usr/local/google/home/dvyukov/src/gopath /usr/local/google/home/dvyukov/src /usr/local/google/home/dvyukov /usr/local/google/home /usr/local/google /usr/local /usr /]"
level=info msg="[config_reader] Used config file .golangci.yml"
level=info msg="[lintersdb] Active 7 linters: [gofmt golint gosimple lll staticcheck structcheck unused]"
level=info msg="[lintersdb] Optimized sublinters [staticcheck gosimple unused] into metalinter megacheck"
level=info msg="[loader] Go packages loading at mode load deps types and syntax took 8.629060136s"
level=info msg="[loader] SSA repr building timing: packages building 13.216901ms, total 3.40547225s"
level=info msg="[runner] worker.3 took 37.847µs"
level=info msg="[runner] worker.5 took 6.466µs"
level=info msg="[runner] worker.2 took 1.454µs"
level=info msg="[runner] worker.15 took 6.59µs"
level=info msg="[runner] worker.28 took 2.189µs"
level=info msg="[runner] worker.64 took 700ns"
level=info msg="[runner] worker.41 took 1.654µs"
level=info msg="[runner] worker.63 took 968ns"
level=info msg="[runner] worker.62 took 2.308µs"
level=info msg="[runner] worker.31 took 1.253µs"
level=info msg="[runner] worker.26 took 556ns"
level=info msg="[runner] worker.6 took 495.23µs"
level=info msg="[runner] worker.52 took 1.674µs"
level=info msg="[runner] worker.27 took 798ns"
level=info msg="[runner] worker.51 took 38.855µs"
level=info msg="[runner] worker.71 took 2.254µs"
level=info msg="[runner] worker.37 took 1.277µs"
level=info msg="[runner] worker.54 took 5.145µs"
level=info msg="[runner] worker.34 took 1.119µs"
level=info msg="[runner] worker.45 took 17.173µs"
level=info msg="[runner] worker.49 took 1.681µs"
level=info msg="[runner] worker.57 took 1.377µs"
level=info msg="[runner] worker.59 took 1.661µs"
level=info msg="[runner] worker.60 took 2.572µs"
level=info msg="[runner] worker.46 took 2.807µs"
level=info msg="[runner] worker.50 took 10.128µs"
level=info msg="[runner] worker.67 took 821ns"
level=info msg="[runner] worker.20 took 745ns"
level=info msg="[runner] worker.29 took 1.204µs"
level=info msg="[runner] worker.42 took 1.216µs"
level=info msg="[runner] worker.4 took 349.973µs"
level=info msg="[runner] worker.21 took 822ns"
level=info msg="[runner] worker.1 took 33.85µs"
level=info msg="[runner] worker.22 took 799ns"
level=info msg="[runner] worker.14 took 363.162µs"
level=info msg="[runner] worker.30 took 999ns"
level=info msg="[runner] worker.23 took 596ns"
level=info msg="[runner] worker.43 took 1.156µs"
level=info msg="[runner] worker.13 took 383.09µs"
level=info msg="[runner] worker.24 took 440ns"
level=info msg="[runner] worker.40 took 403.493µs"
level=info msg="[runner] worker.25 took 936ns"
level=info msg="[runner] worker.35 took 1.928µs"
level=info msg="[runner] worker.44 took 1µs"
level=info msg="[runner] worker.18 took 409ns"
level=info msg="[runner] worker.53 took 1.179µs"
level=info msg="[runner] worker.72 took 860ns"
level=info msg="[runner] worker.32 took 1.306µs"
level=info msg="[runner] worker.61 took 10.044µs"
level=info msg="[runner] worker.65 took 694ns"
level=info msg="[runner] worker.36 took 1.257µs"
level=info msg="[runner] worker.17 took 808ns"
level=info msg="[runner] worker.69 took 762ns"
level=info msg="[runner] worker.33 took 1.096µs"
level=info msg="[runner] worker.11 took 506.954µs"
level=info msg="[runner] worker.55 took 1.71µs"
level=info msg="[runner] worker.47 took 378ns"
level=info msg="[runner] worker.19 took 2.265µs"
level=info msg="[runner] worker.56 took 1.578µs"
level=info msg="[runner] worker.38 took 4.143µs"
level=info msg="[runner] worker.48 took 898ns"
level=info msg="[runner] worker.66 took 692ns"
level=info msg="[runner] worker.39 took 1.243µs"
level=info msg="[runner] worker.70 took 10.121µs"
level=info msg="[runner] worker.58 took 1.798µs"
level=info msg="[runner] worker.16 took 605ns"
level=info msg="[runner] worker.68 took 590ns"
level=info msg="[runner] worker.10 took 5.484925ms with stages: lll: 5.07213ms"
level=info msg="[runner] worker.9 took 9.757406ms with stages: structcheck: 9.14507ms"
level=info msg="[runner] worker.7 took 22.200534ms with stages: golint: 21.664658ms"
level=warning msg="[runner] Can't run linter golint: no AST for file /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/lex.go in cache: {m:map[/usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/intermediate_types.go:0xc038aab620 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/parser.go:0xc038aab680 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/parser_test.go:0xc038aab6e0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/strace.y:0xc038aab6b0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/parser/straceLex.rl:0xc038aab650 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/call_selector.go:0xc038aab710 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/call_selector_test.go:0xc038aab890 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/fuzz.go:0xc038aab740 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/generate_unions.go:0xc038aab770 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/proggen.go:0xc038aab7a0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/proggen_test.go:0xc038aab8c0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/return_cache.go:0xc038aab7d0 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/proggen/unsupported_calls.go:0xc038aab800 /usr/local/google/home/dvyukov/src/gopath/src/github.com/google/syzkaller/tools/syz-trace2syz/trace2syz.go:0xc038aab5f0] s:[0xc038aab6e0 0xc038aab620 0xc038aab6b0 0xc038aab770 0xc038aab7d0 0xc038aab800 0xc038aab890 0xc038aab8c0 0xc038aab710 0xc038aab7a0 0xc038aab5f0 0xc038aab650 0xc038aab680 0xc038aab740] log:{rd:0xc00081e6e0 tags:[loader astcache] origLog:0xc0313ccce0}}"
level=info msg="[runner] worker.8 took 40.286475ms with stages: gofmt: 39.714145ms"
level=info msg="[runner] worker.12 took 14.37152262s with stages: megacheck: 14.370800029s"
level=info msg="[runner] Workers idle times: #1: 14.370506589s, #2: 14.371219936s, #3: 14.371283539s, #4: 14.370581114s, #5: 14.371233087s, #6: 14.371037343s, #7: 14.349342197s, #8: 14.3312528s, #9: 14.361759576s, #10: 14.365972989s, #11: 14.369767211s, #13: 14.370315939s, #14: 14.370441367s, #15: 14.37121018s, #16: 14.369338893s, #17: 14.369866681s, #18: 14.370143273s, #19: 14.36967974s, #20: 14.370673019s, #21: 14.370519052s, #22: 14.370471534s, #23: 14.370378082s, #24: 14.370287345s, #25: 14.37022562s, #26: 14.371051347s, #27: 14.371025955s, #28: 14.371166681s, #29: 14.370642114s, #30: 14.370407293s, #31: 14.37105824s, #32: 14.369988434s, #33: 14.369805244s, #34: 14.370937537s, #35: 14.370195547s, #36: 14.36991178s, #37: 14.370959889s, #38: 14.369617354s, #39: 14.369456813s, #40: 14.370254989s, #41: 14.371122638s, #42: 14.370612447s, #43: 14.370347673s, #44: 14.370153043s, #45: 14.370890286s, #46: 14.370795083s, #47: 14.369709477s, #48: 14.369581526s, #49: 14.370873887s, #50: 14.370748162s, #51: 14.370992472s, #52: 14.371031759s, #53: 14.370112621s, #54: 14.370948255s, #55: 14.369745224s, #56: 14.369650455s, #57: 14.370841712s, #58: 14.369379776s, #59: 14.370828584s, #60: 14.370805597s, #61: 14.369977455s, #62: 14.371077832s, #63: 14.371090295s, #64: 14.371153807s, #65: 14.369920467s, #66: 14.369511676s, #67: 14.370708452s, #68: 14.369305031s, #69: 14.369836057s, #70: 14.369414598s, #71: 14.370975612s, #72: 14.370005471s"
level=info msg="[runner] Issues before processing: 25, after processing: 0"
level=info msg="[runner] processing took 1.536789ms with stages: path_prettifier: 584.05µs, cgo: 347.122µs, autogenerated_exclude: 305.511µs, skip_files: 245.303µs, skip_dirs: 31.454µs, max_same_issues: 6.628µs, identifier_marker: 2.527µs, diff: 2.212µs, exclude-rules: 1.883µs, nolint: 1.816µs, replacement_builder: 1.57µs, path_shortener: 1.484µs, exclude: 1.464µs, max_from_linter: 1.228µs, source_code: 1.032µs, max_per_file_from_linter: 927ns, uniq_by_line: 578ns"
level=info msg="File cache stats: 0 entries of total size 0B"
level=info msg="Memory: 265 samples, avg is 2523.9MB, max is 4454.4MB"
level=info msg="Execution took 26.501295158s"
@dvyukov
Copy link
Author

dvyukov commented Mar 28, 2019

This seems to have something to do with line directives.

@lnshi
Copy link

lnshi commented Apr 1, 2019

Same issue here, and more: i can run on mac Darwin Kernel Version 18.2.0: Thu Dec 20 20:46:53 PST 2018; root:xnu-4903.241.1~1/RELEASE_X86_64 x86_64, but not linx, on linux even the // nolint: *** are not respected

jirfag added a commit that referenced this issue Apr 20, 2019
Preprocessed files like .qtpl.go quicktemplate Go files can have
//line directives. They map to a source .qtpl file.
This commit fixes linting of such files:
1. don't fail on AST cache loading
2. output Go filename not .qtpl or similar

Also, here we update golint to the upstream version.

Relates: #316, #466, #467, #468
jirfag added a commit that referenced this issue Apr 20, 2019
Preprocessed files like .qtpl.go quicktemplate Go files can have
//line directives. They map to a source .qtpl file.
This commit fixes linting of such files:
1. don't fail on AST cache loading
2. output Go filename not .qtpl or similar

Also, here we update golint to the upstream version.

Relates: #316, #466, #467, #468
jirfag added a commit that referenced this issue Apr 20, 2019
Preprocessed files like .qtpl.go quicktemplate Go files can have
//line directives. They map to a source .qtpl file.
This commit fixes linting of such files:
1. don't fail on AST cache loading
2. output Go filename not .qtpl or similar

Also, here we update golint to the upstream version.

Relates: #316, #466, #467, #468
jirfag added a commit that referenced this issue Apr 20, 2019
Skip yacctab, yaccpar and NONE files.

Relates: #467, #468
@jirfag
Copy link
Member

jirfag commented Apr 20, 2019

Hi, thank you!
The issue was because of poor .rl and .y files support. I've fixed it in #504 and #505.
I've run golangci-lint on the github.com/google/syzkaller: it works ok now for me.

jirfag added a commit that referenced this issue Apr 20, 2019
Skip yacctab, yaccpar and NONE files.

Relates: #467, #468
@dvyukov
Copy link
Author

dvyukov commented Apr 23, 2019

Now everything seems to work as expected. Thanks!

@dvyukov dvyukov closed this as completed Apr 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants