vocdoni / vocdoni-node

A set of libraries and tools for the Vocdoni decentralized backend infrastructure, the main ground of our universally verifiable, privacy-centric and scalable digital voting protocol
GNU Affero General Public License v3.0
86 stars 16 forks source link

Data race on scrutinizer #678

Closed p4u closed 1 year ago

p4u commented 1 year ago

Not sure if this is already reported.

WARNING: DATA RACE
Write at 0x00c00c912df0 by goroutine 483:
  go.vocdoni.io/dvote/vochain/scrutinizer.(*Scrutinizer).Rollback()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/scrutinizer/scrutinizer.go:547 +0x21c
  go.vocdoni.io/dvote/vochain.(*State).Rollback()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/state.go:1088 +0x29a
  go.vocdoni.io/dvote/vochain.(*BaseApplication).BeginBlock()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/app.go:457 +0x48
  github.com/tendermint/tendermint/abci/client.(*localClient).BeginBlockSync()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/abci/client/local_client.go:285 +0x174
  github.com/tendermint/tendermint/internal/proxy.(*appConnConsensus).BeginBlockSync()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/proxy/app_conn.go:93 +0x28b
  github.com/tendermint/tendermint/internal/state.execBlockOnProxyApp()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/state/execution.go:343 +0x5ab
  github.com/tendermint/tendermint/internal/state.(*BlockExecutor).ApplyBlock()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/state/execution.go:161 +0x20d
  github.com/tendermint/tendermint/internal/consensus.(*State).finalizeCommit()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:1722 +0xf7c
  github.com/tendermint/tendermint/internal/consensus.(*State).tryFinalizeCommit()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:1636 +0x46d
  github.com/tendermint/tendermint/internal/consensus.(*State).enterCommit.func1()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:1570 +0x10a
  runtime.deferreturn()
      /opt/hostedtoolcache/go/1.18.8/x64/src/runtime/panic.go:436 +0x32
  github.com/tendermint/tendermint/internal/consensus.(*State).addVote()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:2204 +0x1292
  github.com/tendermint/tendermint/internal/consensus.(*State).tryAddVote()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:2002 +0x77
  github.com/tendermint/tendermint/internal/consensus.(*State).handleMsg()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:918 +0x65c
  github.com/tendermint/tendermint/internal/consensus.(*State).receiveRoutine()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:[84](https://github.com/vocdoni/vocdoni-node/actions/runs/3463152483/jobs/5782993701#step:7:85)5 +0x6f6
  github.com/tendermint/tendermint/internal/consensus.(*State).OnStart.func1()
      /home/runner/go/pkg/mod/github.com/tendermint/tendermint@v0.35.9/internal/consensus/state.go:417 +0x3b

Previous write at 0x00c00c[91](https://github.com/vocdoni/vocdoni-node/actions/runs/3463152483/jobs/5782993701#step:7:92)2df0 by goroutine 406:
  go.vocdoni.io/dvote/vochain/scrutinizer.(*Scrutinizer).OnNewTx()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/scrutinizer/transaction.go:44 +0x1c5
  go.vocdoni.io/dvote/vochain.(*BaseApplication).DeliverTx()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/app.go:523 +0x73b
  go.vocdoni.io/dvote/vochain.(*BaseApplication).SetTestingMethods.func3()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/app.go:207 +0x1c4
  go.vocdoni.io/dvote/vochain.(*BaseApplication).SendTx()
      /home/runner/work/vocdoni-node/vocdoni-node/vochain/app.go:343 +0x84
  go.vocdoni.io/dvote/api.(*API).accountSetHandler()
      /home/runner/work/vocdoni-node/vocdoni-node/api/accounts.go:131 +0x408
  go.vocdoni.io/dvote/api.(*API).accountSetHandler-fm()
      <autogenerated>:1 +0x4d
  go.vocdoni.io/dvote/httprouter/bearerstdapi.(*BearerStandardAPI).RegisterMethod.func1()
      /home/runner/work/vocdoni-node/vocdoni-node/httprouter/bearerstdapi/bearerstdapi.go:140 +0xaa
  go.vocdoni.io/dvote/httprouter.(*HTTProuter).routerHandler.func1.2()
      /home/runner/work/vocdoni-node/vocdoni-node/httprouter/httprouter.go:261 +0xde
mvdan commented 1 year ago

Thanks, will look into it.