capnproto / go-capnp

Cap'n Proto library and code generator for Go

Home Page:https://capnproto.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data race in message.go

lthibault opened this issue · comments

WARNING: DATA RACE
Write at 0x00c0014886c8 by goroutine 130:
  capnproto.org/go/capnp/v3.alloc()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/message.go:356 +0x1d2
  capnproto.org/go/capnp/v3.NewCompositeList()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/list.go:62 +0xe4
  capnproto.org/go/capnp/v3/std/capnp/rpc.NewCapDescriptor_List()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/std/capnp/rpc/rpc.capnp.go:2406 +0xce
  capnproto.org/go/capnp/v3/std/capnp/rpc.Payload.NewCapTable()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/std/capnp/rpc/rpc.capnp.go:2179 +0x84
  capnproto.org/go/capnp/v3/rpc.(*Conn).fillPayloadCapTable()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/export.go:183 +0x1fa
  capnproto.org/go/capnp/v3/rpc.(*answer).sendReturn()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/answer.go:228 +0x174
  capnproto.org/go/capnp/v3/rpc.(*answer).Return()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/answer.go:197 +0x11d
  capnproto.org/go/capnp/v3/server.(*Server).handleCall()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/server.go:214 +0x281
  capnproto.org/go/capnp/v3/server.(*Server).handleCalls.func2()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/server.go:182 +0x84
  capnproto.org/go/capnp/v3/server.(*Server).handleCalls()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/server.go:183 +0x1c4
  capnproto.org/go/capnp/v3/server.New.func1()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/server.go:122 +0x58

Previous read at 0x00c0014886c8 by goroutine 157:
  capnproto.org/go/capnp/v3.(*Segment).slice()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/segment.go:49 +0x5d
  capnproto.org/go/capnp/v3.(*Segment).readUint64()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/segment.go:65 +0x51
  capnproto.org/go/capnp/v3.(*Segment).readRawPointer()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/segment.go:69 +0x50
  capnproto.org/go/capnp/v3.(*Segment).resolveFarPointer()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/segment.go:235 +0x4f
  capnproto.org/go/capnp/v3.(*Segment).readPtr()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/segment.go:116 +0x75
  capnproto.org/go/capnp/v3.Struct.Ptr()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/struct.go:109 +0x119
  capnproto.org/go/capnp/v3.Transform()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/answer.go:580 +0x2ed
  capnproto.org/go/capnp/v3.resolution.ptr()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/answer.go:606 +0xfc
  capnproto.org/go/capnp/v3.resolution.client()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/answer.go:615 +0x96
  capnproto.org/go/capnp/v3.(*Answer).PipelineRecv()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/answer.go:393 +0x413
  capnproto.org/go/capnp/v3.(*Answer).PipelineRecv-fm()
      <autogenerated>:1 +0xc7
  capnproto.org/go/capnp/v3/server.queueCaller.PipelineRecv()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/answer.go:161 +0x2e2
  capnproto.org/go/capnp/v3/server.(*answerQueue).PipelineRecv()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/answer.go:136 +0xc9
  capnproto.org/go/capnp/v3/rpc.(*Conn).handleCall()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/rpc.go:837 +0x1f32
  capnproto.org/go/capnp/v3/rpc.(*Conn).receive()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/rpc.go:543 +0x644
  capnproto.org/go/capnp/v3/rpc.(*Conn).receive-fm()
      <autogenerated>:1 +0x39
  capnproto.org/go/capnp/v3/rpc.(*Conn).backgroundTask.func1()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/rpc.go:206 +0x92
  golang.org/x/sync/errgroup.(*Group).Go.func1()
      /Users/lthibault/Go/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:75 +0x86

Goroutine 130 (running) created at:
  capnproto.org/go/capnp/v3/server.New()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/server/server.go:122 +0x544
  github.com/wetware/ww/internal/api/pubsub.Router_NewServer()
      /Users/lthibault/Go/src/github.com/wetware/ww/internal/api/pubsub/pubsub.capnp.go:740 +0xc9
  github.com/wetware/ww/internal/api/pubsub.Router_ServerToClient()
      /Users/lthibault/Go/src/github.com/wetware/ww/internal/api/pubsub/pubsub.capnp.go:746 +0x36
  github.com/wetware/ww/pkg/pubsub.NewJoiner()
      /Users/lthibault/Go/src/github.com/wetware/ww/pkg/pubsub/pubsub.go:42 +0x197
  github.com/wetware/ww/pkg/pubsub.(*Server).PubSub()
      /Users/lthibault/Go/src/github.com/wetware/ww/pkg/pubsub/router.go:52 +0x177
  github.com/wetware/ww/pkg/pubsub_test.TestMessageCopy()
      /Users/lthibault/Go/src/github.com/wetware/ww/pkg/pubsub/pubsub_test.go:126 +0xd1
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      /usr/local/go/src/testing/testing.go:1493 +0x47

Goroutine 157 (running) created at:
  golang.org/x/sync/errgroup.(*Group).Go()
      /Users/lthibault/Go/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:72 +0x12e
  capnproto.org/go/capnp/v3/rpc.NewConn()
      /Users/lthibault/Go/pkg/mod/capnproto.org/go/capnp/v3@v3.0.0-alpha.16/rpc/rpc.go:172 +0x744
  github.com/wetware/ww/pkg/pubsub_test.TestMessageCopy()
      /Users/lthibault/Go/src/github.com/wetware/ww/pkg/pubsub/pubsub_test.go:130 +0x32c
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      /usr/local/go/src/testing/testing.go:1493 +0x47
==================