asynkron / protoactor-go

Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
http://proto.actor
Apache License 2.0
5.05k stars 523 forks source link

Data Race #1108

Closed lrweck closed 1 month ago

lrweck commented 5 months ago
WARNING: DATA RACE
Read at 0x00c000ed1e58 by goroutine 46:
  github.com/asynkron/protoactor-go/cluster.(*Gossiper).GetActorCount()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/gossiper.go:344 +0x254
  github.com/asynkron/protoactor-go/cluster.(*Gossiper).gossipLoop()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/gossiper.go:331 +0x1ec
  github.com/asynkron/protoactor-go/cluster.(*Gossiper).StartGossiping.gowrap1()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/gossiper.go:291 +0x34

Previous write at 0x00c000ed1e58 by goroutine 11463:
  ??()
      -:0 +0x104f034a8
  sync/atomic.AddInt32()
      <autogenerated>:1 +0x14
  github.com/asynkron/protoactor-go/cluster/identitylookup/disthash.(*placementActor).Receive()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/identitylookup/disthash/placement_actor.go:39 +0x1cc
  github.com/asynkron/protoactor-go/actor.(*actorContext).defaultReceive()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:372 +0x118
  github.com/asynkron/protoactor-go/actor.(*actorContext).processMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:527 +0x310
  github.com/asynkron/protoactor-go/actor.(*actorContext).InvokeUserMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:505 +0x428
  github.com/asynkron/protoactor-go/actor.(*actorContext).handleTerminated()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:628 +0x94
  github.com/asynkron/protoactor-go/actor.(*actorContext).InvokeSystemMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:561 +0x200
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).run()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:154 +0x1d4
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:105 +0x28
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages-fm()
      <autogenerated>:1 +0x34

Goroutine 46 (running) created at:
  github.com/asynkron/protoactor-go/cluster.(*Gossiper).StartGossiping()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/gossiper.go:291 +0x694
  github.com/asynkron/protoactor-go/cluster.(*Cluster).StartMember()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/cluster/cluster.go:101 +0x444
  main.main()
      _testmain.go:119 +0x2b4

Goroutine 11463 (finished) created at:
  github.com/asynkron/protoactor-go/actor.goroutineDispatcher.Schedule()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/dispatcher.go:13 +0x28
  github.com/asynkron/protoactor-go/actor.(*goroutineDispatcher).Schedule()
      <autogenerated>:1 +0x48
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).schedule()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:99 +0xc0
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).PostSystemMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:89 +0xd8
  github.com/asynkron/protoactor-go/actor.(*ActorProcess).SendSystemMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_process.go:25 +0x54
  github.com/asynkron/protoactor-go/actor.(*PID).sendSystemMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/pid.go:54 +0x54
  github.com/asynkron/protoactor-go/actor.(*actorContext).finalizeStop()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:695 +0x248
  github.com/asynkron/protoactor-go/actor.(*actorContext).tryRestartOrTerminate()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:665 +0x100
  github.com/asynkron/protoactor-go/actor.(*actorContext).handleStop()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:619 +0xa0
  github.com/asynkron/protoactor-go/actor.(*actorContext).InvokeSystemMessage()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/actor_context.go:559 +0x1e0
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).run()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:154 +0x1d4
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages()
      /Users/lrweck/go/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240413045429-76c172a71a16/actor/mailbox.go:105 +0x28
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages-fm()
      <autogenerated>:1 +0x34