We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
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
fatal error: concurrent map writes
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
The text was updated successfully, but these errors were encountered:
catch
types.Map.Erase
Hello, thanks for reporting the bug. It will be fixed in #1142.
Sorry, something went wrong.
Successfully merging a pull request may close this issue.
PHP Version: 7.4
OS: macOS
Run command:
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 panicExpected Behavior:
To run without an internal error, and produce a list of findings.
[Optional] Details:
Output:
The text was updated successfully, but these errors were encountered: