Skip to content

[NATS] Race detected around nats.(*KeyValue).BucketSize() #537

@mhmxs

Description

@mhmxs
==================
WARNING: DATA RACE
Write at 0x00c0000afb10 by goroutine 186:
  github.com/nats-io/nats.go/jetstream.(*stream).Info()
      /root/go/pkg/mod/github.com/nats-io/[email protected]/jetstream/stream.go:456 +0xbe4
  github.com/nats-io/nats.go/jetstream.(*kvs).Status()
      /root/go/pkg/mod/github.com/nats-io/[email protected]/jetstream/kv.go:1494 +0x67
  github.com/k3s-io/kine/pkg/drivers/nats.(*KeyValue).BucketSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/kv.go:301 +0x58
  github.com/k3s-io/kine/pkg/drivers/nats.(*Backend).DbSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/backend.go:129 +0x4e
  github.com/k3s-io/kine/pkg/drivers/nats.(*BackendLogger).DbSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/logger.go:116 +0x56
  github.com/k3s-io/kine/pkg/server.(*LimitedServer).dbSize()
      /root/src/github.com/kine/kine/pkg/server/dbsize.go:6 +0x73
  github.com/k3s-io/kine/pkg/server.(*KVServerBridge).Status()
      /root/src/github.com/kine/kine/pkg/server/maintenance.go:18 +0x2b
  go.etcd.io/etcd/api/v3/etcdserverpb._Maintenance_Status_Handler()
      /root/go/pkg/mod/go.etcd.io/etcd/api/[email protected]/etcdserverpb/rpc.pb.go:7684 +0x28e
  google.golang.org/grpc.(*Server).processUnaryRPC()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1431 +0x1bc2
  google.golang.org/grpc.(*Server).processUnaryRPC()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1387 +0x15e7
  google.golang.org/grpc.(*Server).handleStream()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1842 +0x1372
  google.golang.org/grpc.(*Server).serveStreams.func2.1()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1061 +0x158

Previous write at 0x00c0000afb10 by goroutine 190:
  github.com/nats-io/nats.go/jetstream.(*stream).Info()
      /root/go/pkg/mod/github.com/nats-io/[email protected]/jetstream/stream.go:456 +0xbe4
  github.com/nats-io/nats.go/jetstream.(*kvs).Status()
      /root/go/pkg/mod/github.com/nats-io/[email protected]/jetstream/kv.go:1494 +0x67
  github.com/k3s-io/kine/pkg/drivers/nats.(*KeyValue).BucketSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/kv.go:301 +0x58
  github.com/k3s-io/kine/pkg/drivers/nats.(*Backend).DbSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/backend.go:129 +0x4e
  github.com/k3s-io/kine/pkg/drivers/nats.(*BackendLogger).DbSize()
      /root/src/github.com/kine/kine/pkg/drivers/nats/logger.go:116 +0x56
  github.com/k3s-io/kine/pkg/server.(*LimitedServer).dbSize()
      /root/src/github.com/kine/kine/pkg/server/dbsize.go:6 +0x73
  github.com/k3s-io/kine/pkg/server.(*KVServerBridge).Status()
      /root/src/github.com/kine/kine/pkg/server/maintenance.go:18 +0x2b
  go.etcd.io/etcd/api/v3/etcdserverpb._Maintenance_Status_Handler()
      /root/go/pkg/mod/go.etcd.io/etcd/api/[email protected]/etcdserverpb/rpc.pb.go:7684 +0x28e
  google.golang.org/grpc.(*Server).processUnaryRPC()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1431 +0x1bc2
  google.golang.org/grpc.(*Server).processUnaryRPC()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1387 +0x15e7
  google.golang.org/grpc.(*Server).handleStream()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1842 +0x1372
  google.golang.org/grpc.(*Server).serveStreams.func2.1()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1061 +0x158

Goroutine 186 (running) created at:
  google.golang.org/grpc.(*Server).serveStreams.func2()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1072 +0x214
  google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
      /root/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_server.go:663 +0x3e02
  google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
      /root/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_server.go:704 +0x39a
  google.golang.org/grpc.(*Server).serveStreams()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1055 +0x672
  google.golang.org/grpc.(*Server).handleRawConn.func1()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:989 +0x86

Goroutine 190 (finished) created at:
  google.golang.org/grpc.(*Server).serveStreams.func2()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1072 +0x214
  google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
      /root/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_server.go:663 +0x3e02
  google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
      /root/go/pkg/mod/google.golang.org/[email protected]/internal/transport/http2_server.go:704 +0x39a
  google.golang.org/grpc.(*Server).serveStreams()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:1055 +0x672
  google.golang.org/grpc.(*Server).handleRawConn.func1()
      /root/go/pkg/mod/google.golang.org/[email protected]/server.go:989 +0x86
==================

Tested on https://github.com/k3s-io/kine/releases/tag/v0.14.2

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