Skip to content

Data Race bug in Actor passivation logic #1139

Description

@lrweck

Describe the bug

WARNING: DATA RACE
Write at 0x00c006720d40 by goroutine 11743:
  github.com/asynkron/protoactor-go/actor.(*actorContextExtras).killReceiveTimeoutTimer()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_context.go:81 +0x88
  github.com/asynkron/protoactor-go/actor.(*actorContext).CancelReceiveTimeout()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_context.go:246 +0xf6
  github.com/asynkron/protoactor-go/actor.(*actorContext).receiveTimeoutHandler()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_context.go:252 +0x8f
  github.com/asynkron/protoactor-go/actor.(*actorContext).receiveTimeoutHandler-fm()
      <autogenerated>:1 +0x33

Previous read at 0x00c006720d40 by goroutine 11622:
  github.com/asynkron/protoactor-go/actor.(*actorContextExtras).stopReceiveTimeoutTimer()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_context.go:68 +0x7ee
  github.com/asynkron/protoactor-go/actor.(*actorContext).InvokeUserMessage()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_context.go:482 +0x7b8
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).run()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/mailbox.go:169 +0x327
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/mailbox.go:105 +0x2e
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).processMessages-fm()
      <autogenerated>:1 +0x33

Goroutine 11743 (running) created at:
  time.goFunc()
      /usr/local/go/src/time/sleep.go:215 +0x44

Goroutine 11622 (running) created at:
  github.com/asynkron/protoactor-go/actor.goroutineDispatcher.Schedule()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/dispatcher.go:13 +0x26
  github.com/asynkron/protoactor-go/actor.(*goroutineDispatcher).Schedule()
      <autogenerated>:1 +0x4b
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).schedule()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/mailbox.go:99 +0xcf
  github.com/asynkron/protoactor-go/actor.(*defaultMailbox).PostUserMessage()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/mailbox.go:80 +0x22e
  github.com/asynkron/protoactor-go/actor.(*ActorProcess).SendUserMessage()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/actor_process.go:21 +0x51
  github.com/asynkron/protoactor-go/actor.(*PID).sendUserMessage()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/pid.go:49 +0x55
  github.com/asynkron/protoactor-go/actor.NewRootContext.func1()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/root_context.go:30 +0x45
  github.com/pismo/ledger/internal/protoactor.(*ClusterActorCaller).newRootCtx.func1.1()
      /codefresh/volume/ledger/internal/protoactor/actor_caller.go:277 +0x269
  github.com/asynkron/protoactor-go/actor.(*RootContext).sendUserMessage()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/root_context.go:145 +0x158
  github.com/asynkron/protoactor-go/actor.(*RootContext).RequestFuture()
      /codefresh/volume/.cache/go-path/pkg/mod/github.com/asynkron/protoactor-go@v0.0.0-20240822202345-3c0e61ca19c9/actor/root_context.go:137 +0x153

Metadata

Metadata

Assignees

No one assigned

    Labels

    TODOKanban status: TODO

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions