The current test CI is very flaky. We need to start to fix them.
I will look over the recent CI failures and post the flaky test cases here.
As mentioned in etcd community meeting, I happen to have already collected the flaky tests. Here they are.
Flaky tests:
--- FAIL: TestBalancerUnderBlackholeKeepAliveWatch (5.72s)
black_hole_test.go:83: took too long to receive watch events
--- FAIL: TestBalancerUnderNetworkPartitionWatchLeader (3.27s)
network_partition_test.go:266: took too long to detect leader lost
--- FAIL: TestRoundRobinBalancedResolvableFailoverFromRequestFail (0.03s)
balancer_test.go:308: expected balanced loads for 20 requests, got switches 2
=== RUN TestLeasingTxnCancel
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xb0184d]
=== RUN TestLeasingNonOwnerPutError
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xaf8a8d]
=== RUN TestLeasingOwnerDeleteError
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xaf8a8d]
We fixed the following tests. If you see them in CI failure after the fix PR, please let us know.
--- FAIL: TestResumeElection (0.04s)
testing.go:771: race detected during execution of test
--- FAIL: TestLeasingDeleteRangeContendTxn (0.94s)
testing.go:771: race detected during execution of test
TestBarrierSingleNode
Fixed by #10772.
TestBarrierMultiNode
Fixed by #10772.
another one txn cancel
=== RUN TestLeasingTxnCancel
{"level":"warn","ts":"2019-05-14T14:00:38.384Z","caller":"clientv3/retry_interceptor.go:60","msg":"retrying of unary invoker failed","target":"endpoint://client-aa069d4d-0556-44fb-b798-344b6508f99f/localhost:715405736098611950","attempt":0,"error":"rpc error: code = Unavailable desc = etcdserver: leader changed"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xaf8a8d]
goroutine 20054 [running]:
google.golang.org/grpc.(*csAttempt).sendMsg(0xc00025ba20, 0x12b23c0, 0xc00051c2e0, 0xc0019569c8, 0x5, 0x5, 0xc0019569d0, 0xb, 0xb, 0xc0019569d0, ...)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:713 +0x14d
google.golang.org/grpc.(*clientStream).SendMsg.func2(0xc00025ba20, 0x48, 0x48)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:637 +0x186
google.golang.org/grpc.(*clientStream).withRetry(0xc001d26480, 0xc0019cf900, 0xc0012cbaa0, 0xc0019569c8, 0x5)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:530 +0x431
google.golang.org/grpc.(*clientStream).SendMsg(0xc001d26480, 0x12b23c0, 0xc00051c2e0, 0x0, 0x0)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:643 +0x80c
go.etcd.io/etcd/v3/etcdserver/etcdserverpb.(*watchWatchClient).Send(0xc00051c2d0, 0xc00051c2e0, 0x0, 0x1cd5a18)
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3618 +0x6b
go.etcd.io/etcd/v3/clientv3.(*watchGrpcStream).run(0xc001a496c0)
/go/src/go.etcd.io/etcd/clientv3/watch.go:546 +0xd8d
created by go.etcd.io/etcd/v3/clientv3.(*watcher).newWatcherGrpcStream
/go/src/go.etcd.io/etcd/clientv3/watch.go:277 +0x58c
FAIL go.etcd.io/etcd/v3/clientv3/integration 128.500s
semaphoreci sometimes ran out of the 20m limit.
another TestBalancerUnderBlackholeKeepAliveWatch
=== RUN TestBalancerUnderBlackholeKeepAliveWatch
--- FAIL: TestBalancerUnderBlackholeKeepAliveWatch (5.76s)
black_hole_test.go:83: took too long to receive watch events
TestCtlV3AuthFromKeyPerm
--- FAIL: TestCtlV3AuthFromKeyPerm (16.21s)
testutil.go:55: goroutine 3497 [running]:
go.etcd.io/etcd/pkg/testutil.FatalStack(0xacc2140, 0xae3c020, 0x18)
/go/src/go.etcd.io/etcd/pkg/testutil/testutil.go:54 +0x60
go.etcd.io/etcd/tests/e2e.testCtl(0xacc2140, 0x87592e4, 0x0, 0x0, 0x0)
/go/src/go.etcd.io/etcd/tests/e2e/ctl_v3_test.go:184 +0x3c1
go.etcd.io/etcd/tests/e2e.TestCtlV3AuthFromKeyPerm(0xacc2140)
/go/src/go.etcd.io/etcd/tests/e2e/ctl_v3_auth_test.go:43 +0x43
testing.tRunner(0xacc2140, 0x8758f7c)
/usr/local/go/src/testing/testing.go:827 +0xa3
created by testing.(*T).Run
https://semaphoreci.com/etcd-io/etcd/branches/pull-request-10683/builds/5
TestBarrierSingleNode
WARNING: DATA RACE
Write at 0x00c006787ba8 by goroutine 334:
go.etcd.io/etcd/mvcc.(*keyIndex).put()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:101 +0x206
go.etcd.io/etcd/mvcc.(*keyIndex).tombstone()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:141 +0x2ea
go.etcd.io/etcd/mvcc.(*treeIndex).Tombstone()
/go/src/go.etcd.io/etcd/mvcc/index.go:151 +0x19c
go.etcd.io/etcd/mvcc.(*storeTxnWrite).delete()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:283 +0x375
go.etcd.io/etcd/mvcc.(*storeTxnWrite).deleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:251 +0x1b9
go.etcd.io/etcd/mvcc.(*storeTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:90 +0x81
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:41 +0xe1
go.etcd.io/etcd/mvcc.(*watchableStoreTxnWrite).DeleteRange()
<autogenerated>:1 +0xb1
go.etcd.io/etcd/etcdserver.(*applierV3backend).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:244 +0x241
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).DeleteRange()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver.(*authApplierV3).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:104 +0x1ce
go.etcd.io/etcd/etcdserver.(*applierV3backend).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:126 +0x4dd
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).Apply()
<autogenerated>:1 +0x68
go.etcd.io/etcd/etcdserver.(*authApplierV3).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:58 +0xf3
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntryNormal()
/go/src/go.etcd.io/etcd/etcdserver/server.go:2011 +0x3c8
go.etcd.io/etcd/etcdserver.(*EtcdServer).apply()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1925 +0x77e
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntries()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1349 +0x175
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyAll()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1075 +0x98
go.etcd.io/etcd/etcdserver.(*EtcdServer).run.func8()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1020 +0x53
go.etcd.io/etcd/pkg/schedule.(*fifo).run()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:157 +0x105
Previous read at 0x00c006787ba8 by goroutine 415:
go.etcd.io/etcd/mvcc.(*keyIndex).get()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:365 +0x6ae
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:116 +0xab
go.etcd.io/etcd/mvcc.(*treeIndex).visit.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:102 +0x85
go.etcd.io/etcd/vendor/github.com/google/btree.(*node).iterate()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:523 +0x17f
go.etcd.io/etcd/vendor/github.com/google/btree.(*BTree).AscendGreaterOrEqual()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:759 +0xa9
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/mvcc/index.go:98 +0x3d9
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 334 (running) created at:
go.etcd.io/etcd/pkg/schedule.NewFIFOScheduler()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:70 +0x2b1
go.etcd.io/etcd/etcdserver.(*EtcdServer).run()
/go/src/go.etcd.io/etcd/etcdserver/server.go:905 +0x33f
Goroutine 415 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
==================
WARNING: DATA RACE
Write at 0x00c006787b90 by goroutine 334:
go.etcd.io/etcd/mvcc.(*keyIndex).put()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:102 +0x27f
go.etcd.io/etcd/mvcc.(*keyIndex).tombstone()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:141 +0x2ea
go.etcd.io/etcd/mvcc.(*treeIndex).Tombstone()
/go/src/go.etcd.io/etcd/mvcc/index.go:151 +0x19c
go.etcd.io/etcd/mvcc.(*storeTxnWrite).delete()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:283 +0x375
go.etcd.io/etcd/mvcc.(*storeTxnWrite).deleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:251 +0x1b9
go.etcd.io/etcd/mvcc.(*storeTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:90 +0x81
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:41 +0xe1
go.etcd.io/etcd/mvcc.(*watchableStoreTxnWrite).DeleteRange()
<autogenerated>:1 +0xb1
go.etcd.io/etcd/etcdserver.(*applierV3backend).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:244 +0x241
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).DeleteRange()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver.(*authApplierV3).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:104 +0x1ce
go.etcd.io/etcd/etcdserver.(*applierV3backend).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:126 +0x4dd
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).Apply()
<autogenerated>:1 +0x68
go.etcd.io/etcd/etcdserver.(*authApplierV3).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:58 +0xf3
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntryNormal()
/go/src/go.etcd.io/etcd/etcdserver/server.go:2011 +0x3c8
go.etcd.io/etcd/etcdserver.(*EtcdServer).apply()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1925 +0x77e
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntries()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1349 +0x175
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyAll()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1075 +0x98
go.etcd.io/etcd/etcdserver.(*EtcdServer).run.func8()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1020 +0x53
go.etcd.io/etcd/pkg/schedule.(*fifo).run()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:157 +0x105
Previous read at 0x00c006787b90 by goroutine 415:
go.etcd.io/etcd/mvcc.(*keyIndex).findGeneration()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:313 +0x150
go.etcd.io/etcd/mvcc.(*keyIndex).get()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:160 +0x255
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:116 +0xab
go.etcd.io/etcd/mvcc.(*treeIndex).visit.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:102 +0x85
go.etcd.io/etcd/vendor/github.com/google/btree.(*node).iterate()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:523 +0x17f
go.etcd.io/etcd/vendor/github.com/google/btree.(*BTree).AscendGreaterOrEqual()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:759 +0xa9
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/mvcc/index.go:98 +0x3d9
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 334 (running) created at:
go.etcd.io/etcd/pkg/schedule.NewFIFOScheduler()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:70 +0x2b1
go.etcd.io/etcd/etcdserver.(*EtcdServer).run()
/go/src/go.etcd.io/etcd/etcdserver/server.go:905 +0x33f
Goroutine 415 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
==================
WARNING: DATA RACE
Write at 0x00c0031fe468 by goroutine 334:
go.etcd.io/etcd/mvcc.(*keyIndex).tombstone()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:142 +0x3b7
go.etcd.io/etcd/mvcc.(*treeIndex).Tombstone()
/go/src/go.etcd.io/etcd/mvcc/index.go:151 +0x19c
go.etcd.io/etcd/mvcc.(*storeTxnWrite).delete()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:283 +0x375
go.etcd.io/etcd/mvcc.(*storeTxnWrite).deleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:251 +0x1b9
go.etcd.io/etcd/mvcc.(*storeTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:90 +0x81
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:41 +0xe1
go.etcd.io/etcd/mvcc.(*watchableStoreTxnWrite).DeleteRange()
<autogenerated>:1 +0xb1
go.etcd.io/etcd/etcdserver.(*applierV3backend).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:244 +0x241
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).DeleteRange()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver.(*authApplierV3).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:104 +0x1ce
go.etcd.io/etcd/etcdserver.(*applierV3backend).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:126 +0x4dd
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).Apply()
<autogenerated>:1 +0x68
go.etcd.io/etcd/etcdserver.(*authApplierV3).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:58 +0xf3
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntryNormal()
/go/src/go.etcd.io/etcd/etcdserver/server.go:2011 +0x3c8
go.etcd.io/etcd/etcdserver.(*EtcdServer).apply()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1925 +0x77e
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntries()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1349 +0x175
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyAll()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1075 +0x98
go.etcd.io/etcd/etcdserver.(*EtcdServer).run.func8()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1020 +0x53
go.etcd.io/etcd/pkg/schedule.(*fifo).run()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:157 +0x105
Previous read at 0x00c0031fe468 by goroutine 415:
go.etcd.io/etcd/mvcc.(*keyIndex).get()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:298 +0x61
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:116 +0xab
go.etcd.io/etcd/mvcc.(*treeIndex).visit.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:102 +0x85
go.etcd.io/etcd/vendor/github.com/google/btree.(*node).iterate()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:523 +0x17f
go.etcd.io/etcd/vendor/github.com/google/btree.(*BTree).AscendGreaterOrEqual()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:759 +0xa9
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/mvcc/index.go:98 +0x3d9
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 334 (running) created at:
go.etcd.io/etcd/pkg/schedule.NewFIFOScheduler()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:70 +0x2b1
go.etcd.io/etcd/etcdserver.(*EtcdServer).run()
/go/src/go.etcd.io/etcd/etcdserver/server.go:905 +0x33f
Goroutine 415 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
==================
WARNING: DATA RACE
Read at 0x00c00063bfd8 by goroutine 1012:
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:618 +0x225
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Previous write at 0x00c00063bfd8 by goroutine 843:
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:620 +0x33b
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 1012 (running) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
Goroutine 843 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
==================
WARNING: DATA RACE
Read at 0x00c014205820 by goroutine 1012:
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:618 +0x23e
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Previous write at 0x00c014205820 by goroutine 843:
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/mvcc/index.go:95 +0x1b7
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 1012 (running) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
Goroutine 843 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
--- FAIL: TestBarrierSingleNode (0.25s)
testing.go:771: race detected during execution of test
=== RUN TestBarrierMultiNode
==================
WARNING: DATA RACE
Write at 0x00c00042d4b8 by goroutine 689:
go.etcd.io/etcd/mvcc.(*keyIndex).put()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:101 +0x206
go.etcd.io/etcd/mvcc.(*keyIndex).tombstone()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:141 +0x2ea
go.etcd.io/etcd/mvcc.(*treeIndex).Tombstone()
/go/src/go.etcd.io/etcd/mvcc/index.go:151 +0x19c
go.etcd.io/etcd/mvcc.(*storeTxnWrite).delete()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:283 +0x375
go.etcd.io/etcd/mvcc.(*storeTxnWrite).deleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:251 +0x1b9
go.etcd.io/etcd/mvcc.(*storeTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:90 +0x81
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).DeleteRange()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:41 +0xe1
go.etcd.io/etcd/mvcc.(*watchableStoreTxnWrite).DeleteRange()
<autogenerated>:1 +0xb1
go.etcd.io/etcd/etcdserver.(*applierV3backend).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:244 +0x241
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).DeleteRange()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver.(*authApplierV3).DeleteRange()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:104 +0x1ce
go.etcd.io/etcd/etcdserver.(*applierV3backend).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:126 +0x4dd
go.etcd.io/etcd/etcdserver.(*quotaApplierV3).Apply()
<autogenerated>:1 +0x68
go.etcd.io/etcd/etcdserver.(*authApplierV3).Apply()
/go/src/go.etcd.io/etcd/etcdserver/apply_auth.go:58 +0xf3
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntryNormal()
/go/src/go.etcd.io/etcd/etcdserver/server.go:2011 +0x3c8
go.etcd.io/etcd/etcdserver.(*EtcdServer).apply()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1925 +0x77e
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyEntries()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1349 +0x175
go.etcd.io/etcd/etcdserver.(*EtcdServer).applyAll()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1075 +0x98
go.etcd.io/etcd/etcdserver.(*EtcdServer).run.func8()
/go/src/go.etcd.io/etcd/etcdserver/server.go:1020 +0x53
go.etcd.io/etcd/pkg/schedule.(*fifo).run()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:157 +0x105
Previous read at 0x00c00042d4b8 by goroutine 271:
go.etcd.io/etcd/mvcc.(*keyIndex).findGeneration()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:313 +0x150
go.etcd.io/etcd/mvcc.(*keyIndex).get()
/go/src/go.etcd.io/etcd/mvcc/key_index.go:160 +0x255
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:116 +0xab
go.etcd.io/etcd/mvcc.(*treeIndex).visit.func1()
/go/src/go.etcd.io/etcd/mvcc/index.go:102 +0x85
go.etcd.io/etcd/vendor/github.com/google/btree.(*node).iterate()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:523 +0x17f
go.etcd.io/etcd/vendor/github.com/google/btree.(*BTree).AscendGreaterOrEqual()
/go/src/go.etcd.io/etcd/vendor/github.com/google/btree/btree.go:759 +0xa9
go.etcd.io/etcd/mvcc.(*treeIndex).visit()
/go/src/go.etcd.io/etcd/mvcc/index.go:98 +0x3d9
go.etcd.io/etcd/mvcc.(*treeIndex).Revisions()
/go/src/go.etcd.io/etcd/mvcc/index.go:115 +0x20d
go.etcd.io/etcd/mvcc.(*storeTxnRead).rangeKeys()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:128 +0x37a
go.etcd.io/etcd/mvcc.(*storeTxnRead).Range()
/go/src/go.etcd.io/etcd/mvcc/kvstore_txn.go:50 +0xe4
go.etcd.io/etcd/mvcc.(*txnReadWrite).Range()
<autogenerated>:1 +0xf4
go.etcd.io/etcd/mvcc.(*metricsTxnWrite).Range()
/go/src/go.etcd.io/etcd/mvcc/metrics_txn.go:36 +0x12a
go.etcd.io/etcd/etcdserver.(*applierV3backend).Range()
/go/src/go.etcd.io/etcd/etcdserver/apply.go:275 +0x2fc
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range.func3()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:104 +0x9d
go.etcd.io/etcd/etcdserver.(*EtcdServer).doSerialize()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:554 +0xad
go.etcd.io/etcd/etcdserver.(*EtcdServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/v3_server.go:105 +0x225
go.etcd.io/etcd/etcdserver/api/v3rpc.(*kvServer).Range()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/key.go:52 +0xb0
go.etcd.io/etcd/etcdserver/api/v3rpc.(*quotaKVServer).Range()
<autogenerated>:1 +0x87
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler.func1()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3473 +0xa1
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:31 +0x2d3
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus.(*ServerMetrics).UnaryServerInterceptor.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go:107 +0xff
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:60 +0xf0
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:34 +0x1d9
go.etcd.io/etcd/etcdserver/api/v3rpc.newLogUnaryInterceptor.func1()
/go/src/go.etcd.io/etcd/etcdserver/api/v3rpc/interceptor.go:67 +0xda
go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1()
/go/src/go.etcd.io/etcd/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:39 +0x33d
go.etcd.io/etcd/etcdserver/etcdserverpb._KV_Range_Handler()
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3475 +0x1d8
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).processUnaryRPC()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1026 +0xa8b
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleStream()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:1252 +0x138d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:699 +0xac
Goroutine 689 (running) created at:
go.etcd.io/etcd/pkg/schedule.NewFIFOScheduler()
/go/src/go.etcd.io/etcd/pkg/schedule/schedule.go:70 +0x2b1
go.etcd.io/etcd/etcdserver.(*EtcdServer).run()
/go/src/go.etcd.io/etcd/etcdserver/server.go:905 +0x33f
Goroutine 271 (finished) created at:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams.func1()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:697 +0xb8
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).operateHeaders()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:432 +0x14cb
go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/internal/transport/http2_server.go:472 +0x37a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).serveStreams()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:695 +0x170
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func2()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:649 +0x53
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*Server).handleRawConn.func3()
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/server.go:657 +0x34
==================
--- FAIL: TestBarrierMultiNode (0.66s)
testing.go:771: race detected during execution of test
--- FAIL: proxy-clientv3/integration
--- FAIL: tests/e2e-proxy
make: *** [docker-test-coverage] Error 1
travis_time:end:2b992fcc:start=1555527843145227846,finish=1555530481575826563,duration=2638430598717
[0K[31;1mThe command "case "${TARGET}" in
linux-amd64-fmt)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='fmt bom dep' ./test"
;;
linux-amd64-integration-1-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=1 PASSES='integration' ./test"
;;
linux-amd64-integration-2-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=2 PASSES='integration' ./test"
;;
linux-amd64-integration-4-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=4 PASSES='integration' ./test"
;;
linux-amd64-functional)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "./build && GOARCH=amd64 PASSES='functional' ./test"
;;
linux-amd64-unit)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='unit' ./test"
;;
all-build)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='build' ./test \
&& GOARCH=386 PASSES='build' ./test \
&& GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build \
&& GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=arm ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build"
;;
linux-amd64-grpcproxy)
sudo HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build grpcproxy'" make docker-test
;;
linux-amd64-coverage)
sudo HOST_TMP_DIR=/tmp make docker-test-coverage
;;
linux-amd64-fmt-unit-go-tip)
GOARCH=amd64 PASSES='fmt unit' ./test
;;
linux-386-unit)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=386 PASSES='unit' ./test"
;;
esac
" exited with 2.[0m
=== RUN TestLeasingTxnOwnerIf
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xaf8a8d]
goroutine 20358 [running]:
google.golang.org/grpc.(*csAttempt).sendMsg(0xc0017386e0, 0x12b7d20, 0xc0011ba620, 0xc00615e92b, 0x5, 0x5, 0xc00615e920, 0xb, 0xb, 0xc00615e920, ...)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:713 +0x14d
google.golang.org/grpc.(*clientStream).SendMsg.func2(0xc0017386e0, 0x48, 0x48)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:637 +0x186
google.golang.org/grpc.(*clientStream).withRetry(0xc0000bed80, 0xc001beaeb0, 0xc001781aa0, 0xc00615e92b, 0x5)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:530 +0x431
google.golang.org/grpc.(*clientStream).SendMsg(0xc0000bed80, 0x12b7d20, 0xc0011ba620, 0x0, 0x0)
/go/pkg/mod/google.golang.org/[email protected]/stream.go:643 +0x80c
go.etcd.io/etcd/v3/etcdserver/etcdserverpb.(*watchWatchClient).Send(0xc0011ba5f0, 0xc0011ba620, 0x0, 0x1cdfb18)
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3689 +0x6b
go.etcd.io/etcd/v3/clientv3.(*watchGrpcStream).run(0xc001757450)
/go/src/go.etcd.io/etcd/clientv3/watch.go:546 +0xd8d
created by go.etcd.io/etcd/v3/clientv3.(*watcher).newWatcherGrpcStream
/go/src/go.etcd.io/etcd/clientv3/watch.go:277 +0x58c
--- FAIL: TestBalancerUnderNetworkPartitionWatchLeader (3.43s)
network_partition_test.go:266: took too long to detect leader lost
--- FAIL: TestLeasingDeleteRangeContendTxn (0.73s)
testing.go:771: race detected during execution of test
--- FAIL: TestBalancerUnderNetworkPartitionWatchLeader (3.29s)
network_partition_test.go:266: took too long to detect leader lost
Noticed these failures in two different PRs today (basically same failure point for both tests):
--- FAIL: TestV3CurlAuth (1.00s)
v3_curl_test.go:203: failed testV3CurlAuth add user with curl (read /dev/ptmx: input/output error (expected "revision", got ["curl: (52) Empty reply from server\r\n"]))
ctl_v3_test.go:168: error closing etcd processes (exit status 2)
--- FAIL: TestV3CurlAuthClientTLSCertAuth (0.26s)
v3_curl_test.go:203: failed testV3CurlAuth add user with curl (read /dev/ptmx: input/output error (expected "revision", got ["curl: (56) Unexpected EOF\r\n"]))
ctl_v3_test.go:168: error closing etcd processes (exit status 2)
https://semaphoreci.com/etcd-io/etcd/branches/pull-request-10631/builds/14 for 386-e2e
=== RUN TestLeasingReconnectTxn
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xb5c7ca]
goroutine 30639 [running]:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*csAttempt).sendMsg(0xc000150210, 0x13438c0, 0xc0011b7760, 0xc0016dc2f8, 0x5, 0x5, 0xc0016dc300, 0xb, 0xb, 0xc0016dc300, ...)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:713 +0x14a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*clientStream).SendMsg.func2(0xc000150210, 0xb5b88f, 0xc00283ccd0)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:637 +0x186
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*clientStream).withRetry(0xc00017a5a0, 0xc00283ccd0, 0xc0016abaa8, 0xc0016dc2f8, 0x0)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:530 +0x43d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(*clientStream).SendMsg(0xc00017a5a0, 0x13438c0, 0xc0011b7760, 0x0, 0x0)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:643 +0x777
go.etcd.io/etcd/etcdserver/etcdserverpb.(*watchWatchClient).Send(0xc0011b7730, 0xc0011b7760, 0x0, 0x1e4cf98)
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3697 +0x6b
go.etcd.io/etcd/clientv3.(*watchGrpcStream).run(0xc000360410)
/go/src/go.etcd.io/etcd/clientv3/watch.go:546 +0xd9b
created by go.etcd.io/etcd/clientv3.(*watcher).newWatcherGrpcStream
/go/src/go.etcd.io/etcd/clientv3/watch.go:277 +0x58c
Noticed these failures in two different PRs today (basically same failure point for both tests):
--- FAIL: TestV3CurlAuth (1.00s) v3_curl_test.go:203: failed testV3CurlAuth add user with curl (read /dev/ptmx: input/output error (expected "revision", got ["curl: (52) Empty reply from server\r\n"])) ctl_v3_test.go:168: error closing etcd processes (exit status 2) --- FAIL: TestV3CurlAuthClientTLSCertAuth (0.26s) v3_curl_test.go:203: failed testV3CurlAuth add user with curl (read /dev/ptmx: input/output error (expected "revision", got ["curl: (56) Unexpected EOF\r\n"])) ctl_v3_test.go:168: error closing etcd processes (exit status 2)https://semaphoreci.com/etcd-io/etcd/branches/pull-request-10631/builds/14 for
386-e2e
Fixed by #10800.
=== RUN TestLeasingGetWithOpts
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x60 pc=0xb5c7ca]
goroutine 24216 [running]:
go.etcd.io/etcd/vendor/google.golang.org/grpc.(csAttempt).sendMsg(0xc00065c160, 0x1346c20, 0xc0003b0ec0, 0xc002edc378, 0x5, 0x5, 0xc002edc380, 0xb, 0xb, 0xc002edc380, ...)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:713 +0x14a
go.etcd.io/etcd/vendor/google.golang.org/grpc.(clientStream).SendMsg.func2(0xc00065c160, 0xb5b88f, 0xc00016f130)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:637 +0x186
go.etcd.io/etcd/vendor/google.golang.org/grpc.(clientStream).withRetry(0xc00183a240, 0xc00016f130, 0xc0003edaa8, 0xc002edc378, 0x0)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:530 +0x43d
go.etcd.io/etcd/vendor/google.golang.org/grpc.(clientStream).SendMsg(0xc00183a240, 0x1346c20, 0xc0003b0ec0, 0x0, 0x0)
/go/src/go.etcd.io/etcd/vendor/google.golang.org/grpc/stream.go:643 +0x777
go.etcd.io/etcd/etcdserver/etcdserverpb.(watchWatchClient).Send(0xc00088cbb0, 0xc0003b0ec0, 0x0, 0x1e53018)
/go/src/go.etcd.io/etcd/etcdserver/etcdserverpb/rpc.pb.go:3697 +0x6b
go.etcd.io/etcd/clientv3.(watchGrpcStream).run(0xc0001275f0)
/go/src/go.etcd.io/etcd/clientv3/watch.go:546 +0xd9b
created by go.etcd.io/etcd/clientv3.(*watcher).newWatcherGrpcStream
/go/src/go.etcd.io/etcd/clientv3/watch.go:277 +0x58c
This one is pretty new, only observed it in two very recent tests (might be related to recently merged PRs?)
https://travis-ci.com/etcd-io/etcd/jobs/208110433#L1176
https://travis-ci.com/etcd-io/etcd/jobs/208860886#L1256
--- FAIL: TestKVPutError (0.18s)
kv_test.go:56: expected etcdserver: request is too large, got etcdserver: mvcc: database space exceeded
As reported under https://github.com/etcd-io/etcd/issues/10787 (I believe we should close it and track the test failure here)
=== RUN TestCtlV3AuthEndpointHealth
panic: test timed out after 20m0s
goroutine 6839 [running]:
testing.(*M).startAlarm.func1()
/usr/local/go/src/testing/testing.go:1334 +0xdf
created by time.goFunc
/usr/local/go/src/time/sleep.go:169 +0x44
goroutine 1 [chan receive]:
testing.(*T).Run(0xc0001ca100, 0xcba649, 0x1b, 0xce1508, 0x4b6c01)
/usr/local/go/src/testing/testing.go:917 +0x381
make: *** [docker-test] Error 1
Just as a heads up, the linux-amd64-integration-4-cpu is now skipped as a temporary measure. From what I saw, it is usually the target that incurred the failures.
In my book, this also increases the priority of resolving these flakes.
@jingyih in response to https://github.com/etcd-io/etcd/issues/10700#issuecomment-499718579 these errors still appear today: https://semaphoreci.com/etcd-io/etcd/branches/pull-request-10903/builds/2
--- FAIL: TestCtlV2BackupSnapshot (0.46s)
ctl_v2_test.go:536: could not start etcd process cluster (read /dev/ptmx: input/output error)
=== RUN TestCtlV2BackupV3
--- PASS: TestCtlV2BackupV3 (2.34s)
=== RUN TestCtlV2BackupV3Snapshot
--- FAIL: TestCtlV2BackupV3Snapshot (0.31s)
ctl_v2_test.go:536: could not start etcd process cluster (read /dev/ptmx: input/output error)
I found this issue which is perhaps related; https://github.com/creack/pty/issues/21
Edit (jingyih@, Fri 19 Jul 2019 05:47:20 PM PDT): fixed by #10908.
@tbg This is not the same as those previously fixed by #10800. They may be related and we should investigate. Thanks for reporting!
^- I pulled on this thread because these tests seem to somehow be related to version compatibility, and found that I broke this #10889. I probably didn't notice because the semaphore tests were failing for unrelated reasons.
Will investigate more. I assume there's a better error message that just gets lost somehow.
PS I am using HOST_TMP_DIR=/tmp TEST_OPTS="TESTCASE='TestCtlV2Backup.*Snap' GOARCH=386 PASSES='build e2e'" make docker-test on my linux machine to verify.
Ha, took me 45 minutes to figure out how to get the output:
HOST_TMP_DIR=/tmp TEST_OPTS="EXPECT_DEBUG=true CPU=4 TESTCASE='TestCtlV2BackupV3' GOARCH=386 PASSES='e2e'" make docker-test
Now that I have it, here we go:
../../bin/etcd-12937: 2019-07-19 12:23:08.623487 I | etcdserver: 6c0a2f9e2301 as single-node; fast-forwarding 9 ticks (election ticks 10)
../../bin/etcd-12937: panic: removed all voters
../../bin/etcd-12937:
../../bin/etcd-12937: goroutine 141 [running]:
../../bin/etcd-12937: go.etcd.io/etcd/raft.(*raft).applyConfChange(0xb4ee000, 0x0, 0x0, 0x1, 0x7181d758, 0xca50e935, 0x0, 0x0, 0x0, 0x0, ...)
../../bin/etcd-12937: /go/src/go.etcd.io/etcd/raft/raft.go:1406 +0x43f
../../bin/etcd-12937: go.etcd.io/etcd/raft.(*node).run(0xb49c180, 0xb4ee000)
../../bin/etcd-12937: /go/src/go.etcd.io/etcd/raft/node.go:372 +0xcd6
../../bin/etcd-12937: created by go.etcd.io/etcd/raft.RestartNode
../../bin/etcd-12937: /go/src/go.etcd.io/etcd/raft/node.go:258 +0x252
This indeed introduced in #10889. Now to find out whether the test is doing something silly.
Still poking, but confirming that at least from the vantage point of raft there's a voter being removed:
../../bin/etcd-15895: {"level":"info","ts":"2019-07-19T13:02:09.719Z","caller":"raft/node.go:344","msg":"applying conf change {ID:0 Type:ConfChangeRemoveNode NodeID:14578408409545168728 Context:[] XXX_unrecognized:[]}, current config is voters=(14578408409545168728)"}
Ok I got it, this shady behavior on the part of etcd. There's this code in restartAsStandaloneNode, a method, which if the name suggests correctly, basically wants to rewrite the config of a node and make it the only voter in it.
Unfortunately that code removes before it adds, so if our node is B and the config is A, then it will first remove A and then add B, ending up with something empty in the middle. It needs to add everyone first, then remove. I'll send a patch.
Let's continue this on https://github.com/etcd-io/etcd/issues/10979
Most helpful comment
Fixed by #10800.