Skip to content

Go并发写map报错 #93

@Herbert-555

Description

@Herbert-555

Image
报错信息如下:
fatal error: concurrent map writes
fatal error: concurrent map writes

goroutine 82 [running]:
github.com/chainreactors/spray/core/ihttp.(*Request).SetHeaders(0xc001a39938, 0x3?, 0x0)
/home/runner/work/spray/spray/core/ihttp/request.go:39 +0x118
github.com/chainreactors/spray/core/pool.(*BrutePool).Invoke(0xc002f0e180, {0x1497460?, 0xc000521080})
/home/runner/work/spray/spray/core/pool/brutepool.go:275 +0x153
github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run.func1()
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:67 +0xa2
created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:48 +0x65

goroutine 1 [chan receive]:
github.com/vbauerster/mpb/v8.(*Bar).Wait(...)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/bar.go:387
github.com/chainreactors/spray/core.(*Runner).Run(0xc001a7d180, {0x1645020, 0xc00372ac60})
/home/runner/work/spray/spray/core/runner.go:264 +0x1b4
github.com/chainreactors/spray/core.(*Runner).Prepare(0xc001a7d180, {0x1645020?, 0xc00372ac60})
/home/runner/work/spray/spray/core/runner.go:230 +0x23a
github.com/chainreactors/spray/cmd.Spray()
/home/runner/work/spray/spray/cmd/cmd.go:181 +0x71c
main.main()
/home/runner/work/spray/spray/spray.go:23 +0x17

goroutine 6 [select]:
github.com/panjf2000/ants/v2.(*Pool).purgeStaleWorkers(0xc00016d680, {0x1644fb0, 0xc00007f130})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool.go:84 +0x10a
created by github.com/panjf2000/ants/v2.(*Pool).goPurge
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool.go:149 +0xe5

goroutine 7 [select]:
github.com/panjf2000/ants/v2.(*Pool).ticktock(0xc00016d680, {0x1644fb0, 0xc00007f180})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool.go:127 +0x145
created by github.com/panjf2000/ants/v2.(*Pool).goTicktock
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool.go:156 +0x115

goroutine 52 [select]:
github.com/vbauerster/mpb/v8.(*pState).autoRefreshListener(0xc0009e80a0, 0xc000219fb8?)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/progress.go:322 +0x157
created by github.com/vbauerster/mpb/v8.NewWithContext
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/progress.go:105 +0x3e5

goroutine 53 [select]:
github.com/vbauerster/mpb/v8.(*Progress).serve(0xc003587540, 0xc0009e80a0, 0x0?)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/progress.go:272 +0x1fc
created by github.com/vbauerster/mpb/v8.NewWithContext
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/progress.go:112 +0x559

goroutine 54 [chan receive]:
github.com/vbauerster/mpb/v8.heapManager.run(0x0?)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/heap_manager.go:47 +0xa5
created by github.com/vbauerster/mpb/v8.NewWithContext
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/progress.go:113 +0x5a5

goroutine 24 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).purgeStaleWorkers(0xc000232000, {0x1644fb0, 0xc002f22050})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:84 +0x10a
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goPurge
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:149 +0xe5

goroutine 66 [syscall]:
os/signal.signal_recv()
$GOROOT/src/runtime/sigqueue.go:152 +0x2f
os/signal.loop()
$GOROOT/src/os/signal/signal_unix.go:23 +0x19
created by os/signal.Notify.func1.1
$GOROOT/src/os/signal/signal.go:151 +0x2a

goroutine 58 [chan receive]:
github.com/chainreactors/files.NewFile.func2()
pkg/mod/github.com/chainreactors/files@v0.0.0-20240716182835-7884ee1e77f0/file.go:34 +0x45
created by github.com/chainreactors/files.NewFile
pkg/mod/github.com/chainreactors/files@v0.0.0-20240716182835-7884ee1e77f0/file.go:33 +0x156

goroutine 59 [chan receive]:
github.com/chainreactors/files.NewFile.func2()
pkg/mod/github.com/chainreactors/files@v0.0.0-20240716182835-7884ee1e77f0/file.go:34 +0x45
created by github.com/chainreactors/files.NewFile
pkg/mod/github.com/chainreactors/files@v0.0.0-20240716182835-7884ee1e77f0/file.go:33 +0x156

goroutine 60 [chan receive]:
github.com/chainreactors/spray/cmd.Spray.func1()
/home/runner/work/spray/spray/cmd/cmd.go:154 +0x29
created by github.com/chainreactors/spray/cmd.Spray
/home/runner/work/spray/spray/cmd/cmd.go:152 +0x6bc

goroutine 62 [chan receive]:
github.com/chainreactors/spray/core.(*Runner).OutputHandler.func1()
/home/runner/work/spray/spray/core/runner.go:409 +0x68
created by github.com/chainreactors/spray/core.(*Runner).OutputHandler
/home/runner/work/spray/spray/core/runner.go:406 +0x5a

goroutine 63 [chan receive]:
github.com/chainreactors/spray/core.(*Runner).OutputHandler.func2()
/home/runner/work/spray/spray/core/runner.go:437 +0x5a
created by github.com/chainreactors/spray/core.(*Runner).OutputHandler
/home/runner/work/spray/spray/core/runner.go:434 +0x97

goroutine 65 [select]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0xc0009b2c40, {0x1644fb0, 0xc003587e50}, 0xc0028ba200)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/bar.go:393 +0x150
created by github.com/vbauerster/mpb/v8.newBar
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/bar.go:79 +0x1b8

goroutine 67 [chan receive]:
github.com/chainreactors/spray/cmd.Spray.func2.1()
/home/runner/work/spray/spray/cmd/cmd.go:168 +0x45
created by github.com/chainreactors/spray/cmd.Spray.func2
/home/runner/work/spray/spray/cmd/cmd.go:165 +0xd9

goroutine 25 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).ticktock(0xc000232000, {0x1644fb0, 0xc002f220a0})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:127 +0x145
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goTicktock
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:156 +0x118

goroutine 26 [semacquire]:
sync.runtime_Semacquire(0xc000521140?)
$GOROOT/src/runtime/sema.go:62 +0x27
sync.(*WaitGroup).Wait(0xe5734a?)
$GOROOT/src/sync/waitgroup.go:116 +0x4b
github.com/chainreactors/spray/core/pool.(*BrutePool).Init(0xc002f0e180)
/home/runner/work/spray/spray/core/pool/brutepool.go:135 +0x5bf
github.com/chainreactors/spray/core.(*Runner).Prepare.func3({0x1464a00?, 0xc0009f4000})
/home/runner/work/spray/spray/core/runner.go:208 +0x4f2
github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run.func1()
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:67 +0xa2
created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:48 +0x65

goroutine 27 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).purgeStaleWorkers(0xc0002320a0, {0x1644fb0, 0xc002f22190})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:84 +0x10a
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goPurge
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:149 +0xe5

goroutine 28 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).ticktock(0xc0002320a0, {0x1644fb0, 0xc002f221e0})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:127 +0x145
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goTicktock
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:156 +0x118

goroutine 29 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).purgeStaleWorkers(0xc000232140, {0x1644fb0, 0xc002f22230})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:84 +0x10a
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goPurge
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:149 +0xe5

goroutine 30 [select]:
github.com/panjf2000/ants/v2.(*PoolWithFunc).ticktock(0xc000232140, {0x1644fb0, 0xc002f22280})
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:127 +0x145
created by github.com/panjf2000/ants/v2.(*PoolWithFunc).goTicktock
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/pool_func.go:156 +0x118

goroutine 31 [chan receive]:
github.com/chainreactors/spray/core/pool.(*BrutePool).Handler(0xc002f0e180)
/home/runner/work/spray/spray/core/pool/brutepool.go:420 +0x65
created by github.com/chainreactors/spray/core/pool.NewBrutePool
/home/runner/work/spray/spray/core/pool/brutepool.go:81 +0x756

goroutine 32 [chan send]:
github.com/chainreactors/words.NewWorderWithList.func1()
pkg/mod/github.com/chainreactors/words@v0.0.0-20240910083848-19a289e8984b/worder.go:27 +0x5a
created by github.com/chainreactors/words.NewWorderWithList
pkg/mod/github.com/chainreactors/words@v0.0.0-20240910083848-19a289e8984b/worder.go:25 +0xff

goroutine 33 [select]:
github.com/vbauerster/mpb/v8.(*Bar).serve(0xc002818800, {0x1644fb0, 0xc002f223c0}, 0xc00219ea00)
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/bar.go:393 +0x150
created by github.com/vbauerster/mpb/v8.newBar
pkg/mod/github.com/vbauerster/mpb/v8@v8.7.3/bar.go:79 +0x1b8

goroutine 83 [running]:
goroutine running on other thread; stack unavailable
created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:48 +0x65

goroutine 83 [running]:
github.com/chainreactors/spray/core/ihttp.(*Request).SetHeaders(0xc002f200d8, 0x3?, 0x0)
/home/runner/work/spray/spray/core/ihttp/request.go:44 +0x189
github.com/chainreactors/spray/core/pool.(*BrutePool).Invoke(0xc002f0e180, {0x1497460?, 0xc000521140})
/home/runner/work/spray/spray/core/pool/brutepool.go:275 +0x153
github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run.func1()
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:67 +0xa2
created by github.com/panjf2000/ants/v2.(*goWorkerWithFunc).run
pkg/mod/github.com/panjf2000/ants/v2@v2.9.1/worker_func.go:48 +0x65

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions