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

Panic on concurrent map writes #1141

Closed
MaartenStaa opened this issue Sep 2, 2021 · 1 comment · Fixed by #1142
Closed

Panic on concurrent map writes #1141

MaartenStaa opened this issue Sep 2, 2021 · 1 comment · Fixed by #1142
Labels
bug Something isn't working
Milestone

Comments

@MaartenStaa
Copy link

PHP Version: 7.4

OS: macOS

Run command:

./vendor/bin/noverify check app

The minimal code in which the bug appears:

I don't think it's related to the actual code, but is a race condition. On a second run there was no crash.

Actual Behavior:

fatal error: concurrent map writes followed by a panic

Expected Behavior:

To run without an internal error, and produce a list of findings.

[Optional] Details:

Output:

17:22:39 Started
17:22:39 Indexing [app]
fatal error: concurrent map writes
fatal error: concurrent map writes

goroutine 24 [running]:
runtime.throw(0x17a4c46, 0x15)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/panic.go:1117 +0x72 fp=0xc004b72008 sp=0xc004b71fd8 pc=0x10375f2
runtime.mapdelete_faststr(0x169f600, 0xc00001ebd0, 0xc0071b9c10, 0x10)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/map_faststr.go:382 +0x3a8 fp=0xc004b72070 sp=0xc004b72008 pc=0x1014848
github.com/VKCOM/noverify/src/types.Map.Erase(...)
        /Users/petrmakhnev/noverify/src/types/map.go:351
github.com/VKCOM/noverify/src/linter.(*andWalker).EnterNode(0xc009224600, 0x18570b8, 0xc0041c6de0, 0xc0112f05b0)
        /Users/petrmakhnev/noverify/src/linter/and_walker.go:136 +0xaae fp=0xc004b721c8 sp=0xc004b72070 pc=0x151560e
github.com/VKCOM/noverify/src/ir.(*InstanceOfExpr).Walk(0xc0041c6de0, 0x1857ce8, 0xc009224600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1045 +0x4b fp=0xc004b721f8 sp=0xc004b721c8 pc=0x114588b
github.com/VKCOM/noverify/src/ir.(*BooleanNotExpr).Walk(0xc0080c55e0, 0x1857ce8, 0xc009224600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:383 +0xb2 fp=0xc004b72228 sp=0xc004b721f8 pc=0x1141952
github.com/VKCOM/noverify/src/linter.(*andWalker).EnterNode(0xc009224600, 0x1856820, 0xc0041c6d80, 0xc009224600)
        /Users/petrmakhnev/noverify/src/linter/and_walker.go:77 +0x17c4 fp=0xc004b72380 sp=0xc004b72228 pc=0x1516324
github.com/VKCOM/noverify/src/ir.(*BooleanAndExpr).Walk(0xc0041c6d80, 0x1857ce8, 0xc009224600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:366 +0x4b fp=0xc004b723b0 sp=0xc004b72380 pc=0x11417cb
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf.func3()
        /Users/petrmakhnev/noverify/src/linter/block.go:1564 +0xf0 fp=0xc004b72460 sp=0xc004b723b0 pc=0x1565a30
github.com/VKCOM/noverify/src/linter.(*blockWalker).withSpecificContext(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:668
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc007e69ce0, 0xc00f485b90, 0xc00f485b00)
        /Users/petrmakhnev/noverify/src/linter/block.go:1556 +0x231 fp=0xc004b72680 sp=0xc004b72460 pc=0x1520831
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc007e69ce0, 0x1857040, 0xc00f485b90, 0xc00eddc900)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227 fp=0xc004b72770 sp=0xc004b72680 pc=0x1518a07
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc00f485b90, 0x1857d10, 0xc007e69ce0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b fp=0xc004b727b8 sp=0xc004b72770 pc=0x114554b
github.com/VKCOM/noverify/src/linter.(*rootWalker).handleFuncStmts(0xc0106d5980, 0xc0041c76e0, 0x1, 0x1, 0x0, 0x0, 0x0, 0xc0041c6d50, 0x3, 0x3, ...)
        /Users/petrmakhnev/noverify/src/linter/root.go:444 +0x498 fp=0xc004b728f8 sp=0xc004b727b8 pc=0x154bcb8
github.com/VKCOM/noverify/src/linter.(*rootWalker).enterClassMethod(0xc0106d5980, 0xc010afc690, 0xc010afc690)
        /Users/petrmakhnev/noverify/src/linter/root.go:1050 +0x85e fp=0xc004b72e98 sp=0xc004b728f8 pc=0x1550a3e
github.com/VKCOM/noverify/src/linter.(*rootWalker).EnterNode(0xc0106d5980, 0x18569b0, 0xc010afc690, 0xc004b73501)
        /Users/petrmakhnev/noverify/src/linter/root.go:236 +0x180d fp=0xc004b735b0 sp=0xc004b72e98 pc=0x154982d
github.com/VKCOM/noverify/src/ir.(*ClassMethodStmt).Walk(0xc010afc690, 0x1857d38, 0xc0106d5980)
        /Users/petrmakhnev/noverify/src/ir/walk.go:490 +0x4b fp=0xc004b73608 sp=0xc004b735b0 pc=0x11423cb
github.com/VKCOM/noverify/src/ir.(*ClassStmt).Walk(0xc007e69c30, 0x1857d38, 0xc0106d5980)
        /Users/petrmakhnev/noverify/src/ir/walk.go:534 +0x189 fp=0xc004b73660 sp=0xc004b73608 pc=0x1142789
github.com/VKCOM/noverify/src/ir.(*Root).Walk(0xc0041c6ba0, 0x1857d38, 0xc0106d5980)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1533 +0xac fp=0xc004b736a8 sp=0xc004b73660 pc=0x114856c
github.com/VKCOM/noverify/src/linter.(*Worker).analyzeFile(0xc007a7c500, 0xc0092244e0, 0xc0041c6ba0, 0x3d3, 0x3d3, 0xc0092244e0)
        /Users/petrmakhnev/noverify/src/linter/worker.go:302 +0x4e5 fp=0xc004b73828 sp=0xc004b736a8 pc=0x1563665
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc007a7c500, 0xc005f7d5c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:143 +0x5ce fp=0xc004b739d0 sp=0xc004b73828 pc=0x1561a6e
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc007a7c500, 0xc00288eb00, 0xa3, 0xc005f7d5c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93 fp=0xc004b73ab0 sp=0xc004b739d0 pc=0x15621b3
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc007a7c500, 0xc005f7d5c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c fp=0xc004b73cc0 sp=0xc004b73ab0 pc=0x156292c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc007a7c500, 0xc005f7d5c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525 fp=0xc004b73e70 sp=0xc004b73cc0 pc=0x15630a5
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x4)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e fp=0xc004b73fa8 sp=0xc004b73e70 pc=0x156791e
runtime.goexit()
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc004b73fb0 sp=0xc004b73fa8 pc=0x1070921
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc003fc3728)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc003fc3720)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/sync/waitgroup.go:130 +0x65
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles(0xc00000c6a8, 0xc002ee91c0, 0x0, 0x0, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/linter/linter.go:110 +0x289
github.com/VKCOM/noverify/src/linter.(*Linter).AnalyzeFiles(...)
        /Users/petrmakhnev/noverify/src/linter/linter.go:62
github.com/VKCOM/noverify/src/cmd.parseIndexOnlyFiles(0xc002867c98)
        /Users/petrmakhnev/noverify/src/cmd/git_main.go:32 +0xfa
github.com/VKCOM/noverify/src/cmd.mainNoExit(0xc00060f200, 0x0, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/cmd/main.go:214 +0x548
github.com/VKCOM/noverify/src/cmd.Check(0xc00060f200, 0xc00001e1d0, 0x1, 0x1)
        /Users/petrmakhnev/noverify/src/cmd/check.go:43 +0x26f
github.com/VKCOM/noverify/src/cmd.(*App).Run(0xc000257f80, 0xc000030de0, 0x1, 0xc00000ebd0, 0x1)
        /Users/petrmakhnev/noverify/src/cmd/cli.go:354 +0x57f
github.com/VKCOM/noverify/src/cmd.Run(0xc000030de0, 0xc000165f58, 0x10f6a12, 0xc000078050)
        /Users/petrmakhnev/noverify/src/cmd/main.go:128 +0x2bb
github.com/VKCOM/noverify/src/cmd.Main(0x0)
        /Users/petrmakhnev/noverify/src/cmd/main.go:133 +0x2f
main.main()
        /Users/petrmakhnev/noverify/main.go:14 +0x45

goroutine 16 [select]:
github.com/VKCOM/noverify/src/linter.MemoryLimiterThread(0x1400000)
        /Users/petrmakhnev/noverify/src/linter/limits.go:33 +0xf3
created by github.com/VKCOM/noverify/src/cmd.mainNoExit
        /Users/petrmakhnev/noverify/src/cmd/main.go:198 +0x313

goroutine 20 [runnable]:
syscall.syscall(0x10b97a0, 0x17, 0xc002c177d8, 0x0, 0x0, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/sys_darwin.go:19 +0x2e
syscall.Fstat(0x17, 0xc002c177d8, 0x106ba88, 0xc0001a3200)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/syscall/zsyscall_darwin_amd64.go:1969 +0x5c
os.newFile.func1(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:147
os.ignoringEINTR(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_posix.go:245
os.newFile(0x17, 0xc008fda000, 0xa4, 0x1, 0x17)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:146 +0x152
os.openFileNolog(0xc008fda000, 0xa4, 0x601, 0x1b6, 0x0, 0xc008fda000, 0x6e)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:240 +0x1d7
os.OpenFile(0xc008fda000, 0xa4, 0x601, 0x1b6, 0x0, 0xc008fda000, 0xa4)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file.go:331 +0x65
github.com/VKCOM/noverify/src/linter.createMetaCacheFile(0xc013549e60, 0x53, 0xc0197d43c0, 0xa0, 0xc000602600, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/linter/cache.go:90 +0x111
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00832c0a0, 0xc0197d43c0, 0xa0, 0xc013549e60, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:165 +0x165
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00832c0a0, 0xc013549e60, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00832c0a0, 0xc013549e60, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x0)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 19 [chan send]:
github.com/VKCOM/noverify/src/workspace.readFilenames.func1(0xc00c3ee360, 0x5e, 0x185e2b0, 0xc007b87540, 0x0, 0x0, 0xc002861668, 0x10d11f4)
        /Users/petrmakhnev/noverify/src/workspace/files.go:108 +0x7df
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc00c3ee360, 0x5e, 0x185e2b0, 0xc007b87540, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:66 +0x77
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0133a9a80, 0x3d, 0x185e2b0, 0xc007b86c40, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0133a9940, 0x35, 0x185e2b0, 0xc003ac9800, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0160da780, 0x2f, 0x185e2b0, 0xc003ac9700, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0160da720, 0x27, 0x185e2b0, 0xc0022b6ec0, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0113f12a0, 0x1d, 0x185e2b0, 0xc0022b69c0, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc0113f1220, 0x19, 0x185e2b0, 0xc0022b6700, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0xc00c15dbf0, 0x9, 0x185e2b0, 0xc002c51d80, 0xc002861ee8, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.walkDir(0x1852ca0, 0xc002b943a0, 0x173db6e, 0x1, 0x185e1d0, 0xc002b943b0, 0xc002861ee8, 0x0, 0x100b27b)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:85 +0x2a5
io/fs.WalkDir(0x1852ca0, 0xc002b943a0, 0x173db6e, 0x1, 0xc00066eee8, 0x0, 0x16cab20)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/io/fs/walk.go:112 +0x1b9
github.com/VKCOM/noverify/src/workspace.readFilenames(0xc0066c7380, 0xc003f9ec60, 0x27, 0x0, 0xc00009d200, 0x4, 0x4)
        /Users/petrmakhnev/noverify/src/workspace/files.go:72 +0x265
github.com/VKCOM/noverify/src/workspace.ReadFilenames.func1(0xc0066c7380)
        /Users/petrmakhnev/noverify/src/workspace/files.go:17 +0xa8
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func2(0xc002ee91c0, 0xc0066c7380)
        /Users/petrmakhnev/noverify/src/linter/linter.go:85 +0x30
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:84 +0x17f

goroutine 21 [runnable]:
github.com/VKCOM/noverify/src/phpdoctypes.(*TypeConverter).mapType(0xc0079b6af0, 0x600000002, 0xc0093d20e1, 0x6, 0x1e26578, 0x0, 0x0, 0xc0093d3221, 0x6, 0x100000001e26578)
        /Users/petrmakhnev/noverify/src/phpdoctypes/converter.go:65 +0x1545
github.com/VKCOM/noverify/src/phpdoctypes.(*TypeConverter).mapType(0xc0079b6af0, 0xb0000000c, 0xc0093d20e1, 0xb, 0xc009351560, 0x2, 0x2, 0x55, 0x32d0000002f, 0x6f7c00000000)
        /Users/petrmakhnev/noverify/src/phpdoctypes/converter.go:132 +0xde9
github.com/VKCOM/noverify/src/phpdoctypes.ToRealType(0xc0098853e0, 0xc0093d20e1, 0xb, 0xb0000000c, 0xc0093d20e1, 0xb, 0xc009351560, 0x2, 0x2, 0x0)
        /Users/petrmakhnev/noverify/src/phpdoctypes/converter.go:31 +0xd3
github.com/VKCOM/noverify/src/linter.(*rootWalker).parsePHPDocVar(0xc00728e600, 0xc0093d20d8, 0x17, 0xc009884410, 0x1, 0x1, 0x0, 0x17ccf88, 0x0)
        /Users/petrmakhnev/noverify/src/linter/root.go:830 +0x12e
github.com/VKCOM/noverify/src/linter.(*rootWalker).enterPropertyList(0xc00728e600, 0xc0098a4bb0, 0xc0098a4bb0)
        /Users/petrmakhnev/noverify/src/linter/root.go:874 +0x3dc
github.com/VKCOM/noverify/src/linter.(*rootWalker).EnterNode(0xc00728e600, 0x1857658, 0xc0098a4bb0, 0xc0079b7501)
        /Users/petrmakhnev/noverify/src/linter/root.go:232 +0x10ca
github.com/VKCOM/noverify/src/ir.(*PropertyListStmt).Walk(0xc0098a4bb0, 0x1857d38, 0xc00728e600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1477 +0x4b
github.com/VKCOM/noverify/src/ir.(*ClassStmt).Walk(0xc0098a51e0, 0x1857d38, 0xc00728e600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:534 +0x189
github.com/VKCOM/noverify/src/ir.(*Root).Walk(0xc00fffc780, 0x1857d38, 0xc00728e600)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1533 +0xac
github.com/VKCOM/noverify/src/linter.(*Worker).analyzeFile(0xc0067beeb0, 0xc009ed08a0, 0xc00fffc780, 0x770a, 0x770a, 0xc009ed08a0)
        /Users/petrmakhnev/noverify/src/linter/worker.go:302 +0x4e5
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc0067beeb0, 0xc012622420, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:143 +0x5ce
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc0067beeb0, 0xc003b0cb00, 0xa2, 0xc012622420, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc0067beeb0, 0xc012622420, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc0067beeb0, 0xc012622420, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x1)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 22 [runnable]:
github.com/VKCOM/php-parser/internal/php8.(*Lexer).setTokenPosition(0xc00b661ec0, 0xc00c12c6c0)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/lexer.go:49 +0x185
github.com/VKCOM/php-parser/internal/php8.(*Lexer).Lex(0xc00b661ec0, 0xc00c12c680)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/scanner.go:21714 +0x202d0
github.com/VKCOM/php-parser/internal/php8.(*Parser).Lex(0xc013e3efc0, 0xc007cfe000, 0xe038)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/parser.go:31 +0x2e
github.com/VKCOM/php-parser/internal/php8.yylex1(0x18580d0, 0xc013e3efc0, 0xc007cfe000, 0xe038, 0x3a)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/php8.go:2360 +0x56
github.com/VKCOM/php-parser/internal/php8.(*yyParserImpl).Parse(0xc007cfe000, 0x18580d0, 0xc013e3efc0, 0x0)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/php8.go:2445 +0x2d0b5
github.com/VKCOM/php-parser/internal/php8.yyParse(...)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/php8.go:2394
github.com/VKCOM/php-parser/internal/php8.(*Parser).Parse(0xc013e3efc0, 0xc002c206e0)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/internal/php8/parser.go:51 +0x73
github.com/VKCOM/php-parser/pkg/parser.Parse(0xc00b350000, 0xa2f7, 0xa2f7, 0xc000026d70, 0xc002c206d0, 0x0, 0x0, 0x1041bfc, 0xc009b82c00)
        /Users/petrmakhnev/go/pkg/mod/github.com/!v!k!c!o!m/php-parser@v0.8.0-rc.2.0.20210802093708-d85f5a481602/pkg/parser/parser.go:59 +0xd8e
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc00458d2c0, 0xc0126223c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:126 +0x4b5
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00458d2c0, 0xc0029cb550, 0xa3, 0xc0126223c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00458d2c0, 0xc0126223c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00458d2c0, 0xc0126223c0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x2)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 23 [runnable]:
syscall.syscall(0x10b9540, 0xc008f8a420, 0xc0197a06e0, 0x0, 0x0, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/sys_darwin.go:19 +0x2e
syscall.Rename(0xc0197a0500, 0xa0, 0xc01926af00, 0x9c, 0x1851dc0, 0xc003de18f0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/syscall/zsyscall_darwin_amd64.go:1308 +0x119
os.rename.func1(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:42
os.ignoringEINTR(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_posix.go:245
os.rename(0xc0197a0500, 0xa0, 0xc01926af00, 0x9c, 0xc0158270e0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:41 +0xa7
os.Rename(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file.go:348
github.com/VKCOM/noverify/src/linter.createMetaCacheFile(0xc009da3f40, 0x4f, 0xc01926af00, 0x9c, 0xc0088a0480, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/linter/cache.go:111 +0x27e
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc005bb3860, 0xc01926af00, 0x9c, 0xc009da3f40, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:165 +0x165
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc005bb3860, 0xc009da3f40, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc005bb3860, 0xc009da3f40, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x3)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 25 [runnable]:
github.com/VKCOM/noverify/src/types.Map.Clone(0xc00ed47f00, 0xc00ba73a70, 0xc006de5660, 0xc)
        /Users/petrmakhnev/noverify/src/types/map.go:245 +0x127
github.com/VKCOM/noverify/src/meta.(*Scope).Clone(0xc0158284d0, 0xc00bede700)
        /Users/petrmakhnev/noverify/src/meta/scope.go:356 +0x148
github.com/VKCOM/noverify/src/linter.copyBlockContext(0xc015165480, 0xc00bede700)
        /Users/petrmakhnev/noverify/src/linter/block_context.go:76 +0x45
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc00d28fce0, 0xc00d987290, 0xc00d987200)
        /Users/petrmakhnev/noverify/src/linter/block.go:1555 +0x169
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc00d28fce0, 0x1857040, 0xc00d987290, 0xc00d28fce0)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc00d987290, 0x1857d10, 0xc00d28fce0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b
github.com/VKCOM/noverify/src/ir.(*StmtList).Walk(0xc011a41e90, 0x1857d10, 0xc00d28fce0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1677 +0xac
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf.func4(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:1576
github.com/VKCOM/noverify/src/linter.(*blockWalker).withSpecificContext(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:668
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc00d28fce0, 0xc00d986510, 0xc00d986500)
        /Users/petrmakhnev/noverify/src/linter/block.go:1575 +0x33f
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc00d28fce0, 0x1857040, 0xc00d986510, 0xc015804876)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc00d986510, 0x1857d10, 0xc00d28fce0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b
github.com/VKCOM/noverify/src/linter.(*rootWalker).handleFuncStmts(0xc00c017b00, 0xc00c45ebd0, 0x1, 0x1, 0x0, 0x0, 0x0, 0xc01593ae00, 0x38, 0x38, ...)
        /Users/petrmakhnev/noverify/src/linter/root.go:444 +0x498
github.com/VKCOM/noverify/src/linter.(*rootWalker).enterClassMethod(0xc00c017b00, 0xc00be673b0, 0xc00be673b0)
        /Users/petrmakhnev/noverify/src/linter/root.go:1050 +0x85e
github.com/VKCOM/noverify/src/linter.(*rootWalker).EnterNode(0xc00c017b00, 0x18569b0, 0xc00be673b0, 0xc0079b7500)
        /Users/petrmakhnev/noverify/src/linter/root.go:236 +0x180d
github.com/VKCOM/noverify/src/ir.(*ClassMethodStmt).Walk(0xc00be673b0, 0x1857d38, 0xc00c017b00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:490 +0x4b
github.com/VKCOM/noverify/src/ir.(*ClassStmt).Walk(0xc00b5113f0, 0x1857d38, 0xc00c017b00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:534 +0x189
github.com/VKCOM/noverify/src/ir.(*Root).Walk(0xc012252450, 0x1857d38, 0xc00c017b00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1533 +0xac
github.com/VKCOM/noverify/src/linter.(*Worker).analyzeFile(0xc00458dbd0, 0xc00d1d5440, 0xc012252450, 0xd38b, 0xd38b, 0xc00d1d5440)
        /Users/petrmakhnev/noverify/src/linter/worker.go:302 +0x4e5
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc00458dbd0, 0xc011efd620, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:143 +0x5ce
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00458dbd0, 0xc00bd48aa0, 0x9e, 0xc011efd620, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00458dbd0, 0xc011efd620, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00458dbd0, 0xc011efd620, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x5)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 26 [runnable]:
encoding/gob.encBool(0xc00242c480, 0xc0094f4800, 0x167a860, 0xc00db41e48, 0x81)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:174 +0xee
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc002410660, 0x16cb200, 0xc00db41e48, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.encOpFor.func4(0xc00244a480, 0xc0094f47c0, 0x16cb200, 0xc00db41e48, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:581 +0xac
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc002410630, 0x1718d40, 0xc00db41dd0, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.encOpFor.func4(0x0, 0xc0094f4780, 0x1718d40, 0xc00db41dd0, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:581 +0xac
encoding/gob.encodeReflectValue(0xc0094f4780, 0x1718d40, 0xc00db41dd0, 0x99, 0xc002960760, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:363 +0xd6
encoding/gob.(*Encoder).encodeMap(0xc00e6e1720, 0xc00e6e1758, 0x169d7a0, 0xc00e6e1ab0, 0x95, 0x17cc078, 0xc002960760, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:375 +0x23b
encoding/gob.encOpFor.func3(0xc002460720, 0xc0094f4740, 0x169d7a0, 0xc00e6e1ab0, 0x95)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:571 +0xaa
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc002410618, 0x16ecc20, 0xc00e6e1ab0, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.encOpFor.func4(0xc00244a750, 0xc0094f45c0, 0x16ecc20, 0xc00e6e1ab0, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:581 +0xac
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc0024105d0, 0x171f360, 0xc00e6e1a40, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.encOpFor.func4(0x0, 0xc0094f4580, 0x171f360, 0xc00e6e1a40, 0x99)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:581 +0xac
encoding/gob.encodeReflectValue(0xc0094f4580, 0x171f360, 0xc00e6e1a40, 0x99, 0xc0029607c0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:363 +0xd6
encoding/gob.(*Encoder).encodeMap(0xc00e6e1720, 0xc00e6e1758, 0x169d740, 0xc0007026f0, 0x195, 0x17cc078, 0xc0029607c0, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:375 +0x23b
encoding/gob.encOpFor.func3(0xc002460840, 0xc0094f4540, 0x169d740, 0xc0007026f0, 0x195)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:571 +0xaa
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc0024105b8, 0x16ecb60, 0xc0007026f0, 0x199)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.encOpFor.func4(0xc000508c30, 0xc0094f4500, 0x16ecb60, 0xc0007026f0, 0x199)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:581 +0xac
encoding/gob.(*Encoder).encodeStruct(0xc00e6e1720, 0xc00e6e1758, 0xc0024105a0, 0x17061e0, 0xc0007026e8, 0x199)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:328 +0x256
encoding/gob.(*Encoder).encode(0xc00e6e1720, 0xc00e6e1758, 0x166b440, 0xc0007026e8, 0x16, 0xc000190400)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encode.go:701 +0x205
encoding/gob.(*Encoder).EncodeValue(0xc00e6e1720, 0x166b440, 0xc0007026e8, 0x16, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encoder.go:251 +0x399
encoding/gob.(*Encoder).Encode(0xc00e6e1720, 0x166b440, 0xc0007026e8, 0x0, 0xc0094f4440)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/encoding/gob/encoder.go:176 +0xa9
github.com/VKCOM/noverify/src/linter.writeMetaCache(0xc0094f4440, 0xc000702600, 0x1000, 0xc009d1c000)
        /Users/petrmakhnev/noverify/src/linter/cache.go:74 +0x96
github.com/VKCOM/noverify/src/linter.createMetaCacheFile(0xc005f7d500, 0x59, 0xc003a95600, 0xa6, 0xc000702600, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/linter/cache.go:98 +0x212
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00458ddb0, 0xc003a95600, 0xa6, 0xc005f7d500, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:165 +0x165
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00458ddb0, 0xc005f7d500, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00458ddb0, 0xc005f7d500, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x6)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 27 [runnable]:
syscall.syscall(0x10b9540, 0xc008f74160, 0xc008f742c0, 0x0, 0x0, 0x0, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/sys_darwin.go:19 +0x2e
syscall.Rename(0xc013bb1d90, 0xaa, 0xc00288e420, 0xa6, 0x1851dc0, 0xc010809200)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/syscall/zsyscall_darwin_amd64.go:1308 +0x119
os.rename.func1(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:42
os.ignoringEINTR(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_posix.go:245
os.rename(0xc013bb1d90, 0xaa, 0xc00288e420, 0xa6, 0xc0145c3a58, 0x0)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file_unix.go:41 +0xa7
os.Rename(...)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/os/file.go:348
github.com/VKCOM/noverify/src/linter.createMetaCacheFile(0xc019a92e40, 0x59, 0xc00288e420, 0xa6, 0xc000581c80, 0x0, 0x0)
        /Users/petrmakhnev/noverify/src/linter/cache.go:111 +0x27e
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00458db80, 0xc00288e420, 0xa6, 0xc019a92e40, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:165 +0x165
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00458db80, 0xc019a92e40, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00458db80, 0xc019a92e40, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x7)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 28 [runnable]:
github.com/VKCOM/noverify/src/linter.(*blockWalker).addStatement(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:148
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleSwitch.func1()
        /Users/petrmakhnev/noverify/src/linter/block.go:1765 +0x34b
github.com/VKCOM/noverify/src/linter.(*blockWalker).withNewContext(0xc008b1f8c0, 0xc01492bc98, 0xc00969e940)
        /Users/petrmakhnev/noverify/src/linter/block.go:657 +0x5c
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleSwitch(0xc008b1f8c0, 0xc00c500400, 0xc00c500400)
        /Users/petrmakhnev/noverify/src/linter/block.go:1761 +0x2cf
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc008b1f8c0, 0x1857928, 0xc00c500400, 0x1e26578)
        /Users/petrmakhnev/noverify/src/linter/block.go:364 +0x1327
github.com/VKCOM/noverify/src/ir.(*SwitchStmt).Walk(0xc00c500400, 0x1857d10, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1690 +0x4b
github.com/VKCOM/noverify/src/ir.(*StmtList).Walk(0xc00d2f4d50, 0x1857d10, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1677 +0xac
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf.func4(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:1576
github.com/VKCOM/noverify/src/linter.(*blockWalker).withSpecificContext(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:668
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc008b1f8c0, 0xc011a27b00, 0xc011a27b00)
        /Users/petrmakhnev/noverify/src/linter/block.go:1575 +0x33f
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc008b1f8c0, 0x1857040, 0xc011a27b00, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc011a27b00, 0x1857d10, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b
github.com/VKCOM/noverify/src/ir.(*StmtList).Walk(0xc00d2f4b10, 0x1857d10, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1677 +0xac
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf.func4(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:1576
github.com/VKCOM/noverify/src/linter.(*blockWalker).withSpecificContext(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:668
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc008b1f8c0, 0xc011a27a70, 0xc011a27a00)
        /Users/petrmakhnev/noverify/src/linter/block.go:1575 +0x33f
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc008b1f8c0, 0x1857040, 0xc011a27a70, 0xc00f461ef4)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc011a27a70, 0x1857d10, 0xc008b1f8c0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b
github.com/VKCOM/noverify/src/linter.(*rootWalker).handleFuncStmts(0xc002eedb00, 0xc015503860, 0x2, 0x2, 0x0, 0x0, 0x0, 0xc00d2f4930, 0x3, 0x3, ...)
        /Users/petrmakhnev/noverify/src/linter/root.go:444 +0x498
github.com/VKCOM/noverify/src/linter.(*rootWalker).enterClassMethod(0xc002eedb00, 0xc005f90d20, 0xc005f90d20)
        /Users/petrmakhnev/noverify/src/linter/root.go:1050 +0x85e
github.com/VKCOM/noverify/src/linter.(*rootWalker).EnterNode(0xc002eedb00, 0x18569b0, 0xc005f90d20, 0xc01492d500)
        /Users/petrmakhnev/noverify/src/linter/root.go:236 +0x180d
github.com/VKCOM/noverify/src/ir.(*ClassMethodStmt).Walk(0xc005f90d20, 0x1857d38, 0xc002eedb00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:490 +0x4b
github.com/VKCOM/noverify/src/ir.(*ClassStmt).Walk(0xc008b1f340, 0x1857d38, 0xc002eedb00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:534 +0x189
github.com/VKCOM/noverify/src/ir.(*Root).Walk(0xc011f18660, 0x1857d38, 0xc002eedb00)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1533 +0xac
github.com/VKCOM/noverify/src/linter.(*Worker).analyzeFile(0xc00832c140, 0xc0096a4de0, 0xc011f18660, 0x4d80, 0x4d80, 0xc0096a4de0)
        /Users/petrmakhnev/noverify/src/linter/worker.go:302 +0x4e5
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc00832c140, 0xc00ab607d0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:143 +0x5ce
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00832c140, 0xc019492a00, 0x9d, 0xc00ab607d0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00832c140, 0xc00ab607d0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00832c140, 0xc00ab607d0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x8)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 29 [runnable]:
github.com/VKCOM/noverify/src/linter.(*parseWaiter).Finish(0xc0145718a8)
        /Users/petrmakhnev/noverify/src/linter/limits.go:62 +0x39
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc00832c0f0, 0xc015ccf680, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc011168cc0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:157 +0x77a
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00832c0f0, 0xc0197c8320, 0x99, 0xc015ccf680, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00832c0f0, 0xc015ccf680, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00832c0f0, 0xc015ccf680, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0x9)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 30 [runnable]:
github.com/VKCOM/noverify/src/linter.(*parseWaiter).Finish(0xc00275f8a8)
        /Users/petrmakhnev/noverify/src/linter/limits.go:62 +0x39
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc0067bef00, 0xc013549f20, 0x57, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc00cd3b290, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:157 +0x77a
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc0067bef00, 0xc008f9fce0, 0xa4, 0xc013549f20, 0x57, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc0067bef00, 0xc013549f20, 0x57, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc0067bef00, 0xc013549f20, 0x57, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0xa)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 31 [running]:
        goroutine running on other thread; stack unavailable
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f

goroutine 31 [running]:
runtime.throw(0x17a4c46, 0x15)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/panic.go:1117 +0x72 fp=0xc00a747e50 sp=0xc00a747e20 pc=0x10375f2
runtime.mapdelete_faststr(0x169f600, 0xc00001ebd0, 0xc0086d5810, 0xd)
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/map_faststr.go:382 +0x3a8 fp=0xc00a747eb8 sp=0xc00a747e50 pc=0x1014848
github.com/VKCOM/noverify/src/types.Map.Erase(...)
        /Users/petrmakhnev/noverify/src/types/map.go:351
github.com/VKCOM/noverify/src/linter.(*andWalker).EnterNode(0xc0095eecc0, 0x18570b8, 0xc008efacc0, 0xc00a748058)
        /Users/petrmakhnev/noverify/src/linter/and_walker.go:136 +0xaae fp=0xc00a748010 sp=0xc00a747eb8 pc=0x151560e
github.com/VKCOM/noverify/src/ir.(*InstanceOfExpr).Walk(0xc008efacc0, 0x1857ce8, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1045 +0x4b fp=0xc00a748040 sp=0xc00a748010 pc=0x114588b
github.com/VKCOM/noverify/src/ir.(*BooleanNotExpr).Walk(0xc009c049a0, 0x1857ce8, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:383 +0xb2 fp=0xc00a748070 sp=0xc00a748040 pc=0x1141952
github.com/VKCOM/noverify/src/linter.(*andWalker).EnterNode(0xc0095eecc0, 0x1856820, 0xc008efac90, 0xc0159f0680)
        /Users/petrmakhnev/noverify/src/linter/and_walker.go:77 +0x17c4 fp=0xc00a7481c8 sp=0xc00a748070 pc=0x1516324
github.com/VKCOM/noverify/src/ir.(*BooleanAndExpr).Walk(0xc008efac90, 0x1857ce8, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:366 +0x4b fp=0xc00a7481f8 sp=0xc00a7481c8 pc=0x11417cb
github.com/VKCOM/noverify/src/ir.(*ParenExpr).Walk(0xc008efac30, 0x1857ce8, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1382 +0xb2 fp=0xc00a748228 sp=0xc00a7481f8 pc=0x11477f2
github.com/VKCOM/noverify/src/linter.(*andWalker).EnterNode(0xc0095eecc0, 0x1856820, 0xc008efab70, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/linter/and_walker.go:77 +0x17c4 fp=0xc00a748380 sp=0xc00a748228 pc=0x1516324
github.com/VKCOM/noverify/src/ir.(*BooleanAndExpr).Walk(0xc008efab70, 0x1857ce8, 0xc0095eecc0)
        /Users/petrmakhnev/noverify/src/ir/walk.go:366 +0x4b fp=0xc00a7483b0 sp=0xc00a748380 pc=0x11417cb
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf.func3()
        /Users/petrmakhnev/noverify/src/linter/block.go:1564 +0xf0 fp=0xc00a748460 sp=0xc00a7483b0 pc=0x1565a30
github.com/VKCOM/noverify/src/linter.(*blockWalker).withSpecificContext(...)
        /Users/petrmakhnev/noverify/src/linter/block.go:668
github.com/VKCOM/noverify/src/linter.(*blockWalker).handleIf(0xc009c32370, 0xc00dbb25a0, 0xc00dbb2500)
        /Users/petrmakhnev/noverify/src/linter/block.go:1556 +0x231 fp=0xc00a748680 sp=0xc00a748460 pc=0x1520831
github.com/VKCOM/noverify/src/linter.(*blockWalker).EnterNode(0xc009c32370, 0x1857040, 0xc00dbb25a0, 0xc00dbb2ea0)
        /Users/petrmakhnev/noverify/src/linter/block.go:362 +0x1227 fp=0xc00a748770 sp=0xc00a748680 pc=0x1518a07
github.com/VKCOM/noverify/src/ir.(*IfStmt).Walk(0xc00dbb25a0, 0x1857d10, 0xc009c32370)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1009 +0x4b fp=0xc00a7487b8 sp=0xc00a748770 pc=0x114554b
github.com/VKCOM/noverify/src/linter.(*rootWalker).handleFuncStmts(0xc005064300, 0xc008efb8c0, 0x1, 0x1, 0x0, 0x0, 0x0, 0xc008efab40, 0x3, 0x3, ...)
        /Users/petrmakhnev/noverify/src/linter/root.go:444 +0x498 fp=0xc00a7488f8 sp=0xc00a7487b8 pc=0x154bcb8
github.com/VKCOM/noverify/src/linter.(*rootWalker).enterClassMethod(0xc005064300, 0xc0072ebc20, 0xc0072ebc20)
        /Users/petrmakhnev/noverify/src/linter/root.go:1050 +0x85e fp=0xc00a748e98 sp=0xc00a7488f8 pc=0x1550a3e
github.com/VKCOM/noverify/src/linter.(*rootWalker).EnterNode(0xc005064300, 0x18569b0, 0xc0072ebc20, 0xc00a749501)
        /Users/petrmakhnev/noverify/src/linter/root.go:236 +0x180d fp=0xc00a7495b0 sp=0xc00a748e98 pc=0x154982d
github.com/VKCOM/noverify/src/ir.(*ClassMethodStmt).Walk(0xc0072ebc20, 0x1857d38, 0xc005064300)
        /Users/petrmakhnev/noverify/src/ir/walk.go:490 +0x4b fp=0xc00a749608 sp=0xc00a7495b0 pc=0x11423cb
github.com/VKCOM/noverify/src/ir.(*ClassStmt).Walk(0xc009c322c0, 0x1857d38, 0xc005064300)
        /Users/petrmakhnev/noverify/src/ir/walk.go:534 +0x189 fp=0xc00a749660 sp=0xc00a749608 pc=0x1142789
github.com/VKCOM/noverify/src/ir.(*Root).Walk(0xc008efa8d0, 0x1857d38, 0xc005064300)
        /Users/petrmakhnev/noverify/src/ir/walk.go:1533 +0xac fp=0xc00a7496a8 sp=0xc00a749660 pc=0x114856c
github.com/VKCOM/noverify/src/linter.(*Worker).analyzeFile(0xc00703bcc0, 0xc0095eeba0, 0xc008efa8d0, 0x48c, 0x48c, 0xc0095eeba0)
        /Users/petrmakhnev/noverify/src/linter/worker.go:302 +0x4e5 fp=0xc00a749828 sp=0xc00a7496a8 pc=0x1563665
github.com/VKCOM/noverify/src/linter.(*Worker).ParseContents(0xc00703bcc0, 0xc013549ec0, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:143 +0x5ce fp=0xc00a7499d0 sp=0xc00a749828 pc=0x1561a6e
github.com/VKCOM/noverify/src/linter.(*Worker).parseWithCache(0xc00703bcc0, 0xc019237f40, 0xa0, 0xc013549ec0, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:161 +0x93 fp=0xc00a749ab0 sp=0xc00a7499d0 pc=0x15621b3
github.com/VKCOM/noverify/src/linter.(*Worker).IndexFile(0xc00703bcc0, 0xc013549ec0, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:216 +0x66c fp=0xc00a749cc0 sp=0xc00a749ab0 pc=0x156292c
github.com/VKCOM/noverify/src/linter.(*Worker).doParseFile(0xc00703bcc0, 0xc013549ec0, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/petrmakhnev/noverify/src/linter/worker.go:251 +0x525 fp=0xc00a749e70 sp=0xc00a749cc0 pc=0x15630a5
github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles.func3(0xc0066c7300, 0xc00000c6a8, 0x0, 0xc0066c7380, 0xc0066c73e0, 0xc003fc3720, 0xb)
        /Users/petrmakhnev/noverify/src/linter/linter.go:104 +0x21e fp=0xc00a749fa8 sp=0xc00a749e70 pc=0x156791e
runtime.goexit()
        /opt/homebrew/Cellar/go/1.16.6/libexec/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc00a749fb0 sp=0xc00a749fa8 pc=0x1070921
created by github.com/VKCOM/noverify/src/linter.(*Linter).analyzeFiles
        /Users/petrmakhnev/noverify/src/linter/linter.go:94 +0x25f
@i582
Copy link
Contributor

i582 commented Sep 2, 2021

Hello, thanks for reporting the bug. It will be fixed in #1142.

@i582 i582 closed this as completed in #1142 Sep 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants