cockroachdb / cockroach

CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
https://www.cockroachlabs.com
Other
30.15k stars 3.81k forks source link

stress: failed test in cockroach/storage/storage.test: TestReplicateRestartAfterTruncationWithRemoveAndReAdd #9665

Closed cockroach-teamcity closed 8 years ago

cockroach-teamcity commented 8 years ago

Binary: cockroach/static-tests.tar.gz sha: https://github.com/cockroachdb/cockroach/commits/087bda1d10e970964d6885ce7b505766d113cabe

Stress build found a failed test:

=== RUN   TestReplicateRestartAfterTruncationWithRemoveAndReAdd
I161002 04:50:53.338349 15798 storage/engine/rocksdb.go:356  opening in memory rocksdb instance
I161002 04:50:53.339177 15798 gossip/gossip.go:234  initial resolvers: []
W161002 04:50:53.339200 15798 gossip/gossip.go:1045  no resolvers found; use --join to specify a connected node
I161002 04:50:53.339270 15798 gossip/gossip.go:268  NodeID set to 1
I161002 04:50:53.341043 15798 gossip/gossip.go:268  NodeID set to 1
I161002 04:50:53.341453 15798 storage/store.go:1018  [n1,s1]: failed initial metrics computation: [n1,s1]: system config not yet available
I161002 04:50:53.341496 15798 gossip/gossip.go:282  NodeDescriptor set to node_id:1 address:<network_field:"tcp" address_field:"127.0.0.1:39303" > attrs:<> 
I161002 04:50:53.342214 15821 storage/replica_trigger.go:254  [s1,r1:/M{in-ax}] new range lease replica {1 1 1} 1970-01-01 00:00:00 +0000 UTC 900ms following replica {0 0 0} 1970-01-01 00:00:00 +0000 UTC 0s [physicalTime=1970-01-01 00:00:00 +0000 UTC]
I161002 04:50:53.342582 15798 storage/engine/rocksdb.go:356  opening in memory rocksdb instance
I161002 04:50:53.344077 15798 gossip/gossip.go:234  initial resolvers: [127.0.0.1:39303]
W161002 04:50:53.344122 15798 gossip/gossip.go:1047  no incoming or outgoing connections
I161002 04:50:53.344181 15798 gossip/gossip.go:268  NodeID set to 2
I161002 04:50:53.345006 15798 gossip/gossip.go:268  NodeID set to 2
I161002 04:50:53.345125 15798 storage/store.go:1018  [n2,s2]: failed initial metrics computation: [n2,s2]: system config not yet available
I161002 04:50:53.345159 15798 gossip/gossip.go:282  NodeDescriptor set to node_id:2 address:<network_field:"tcp" address_field:"127.0.0.1:34421" > attrs:<> 
I161002 04:50:53.345317 15798 storage/engine/rocksdb.go:356  opening in memory rocksdb instance
I161002 04:50:53.345325 15876 gossip/client.go:125  node 2: started gossip client to 127.0.0.1:39303
I161002 04:50:53.346193 15798 gossip/gossip.go:234  initial resolvers: [127.0.0.1:39303]
W161002 04:50:53.346217 15798 gossip/gossip.go:1047  no incoming or outgoing connections
I161002 04:50:53.346263 15798 gossip/gossip.go:268  NodeID set to 3
I161002 04:50:53.346977 15798 gossip/gossip.go:268  NodeID set to 3
I161002 04:50:53.347108 15798 storage/store.go:1018  [n3,s3]: failed initial metrics computation: [n3,s3]: system config not yet available
I161002 04:50:53.347153 15798 gossip/gossip.go:282  NodeDescriptor set to node_id:3 address:<network_field:"tcp" address_field:"127.0.0.1:41050" > attrs:<> 
I161002 04:50:53.347411 15997 gossip/client.go:125  node 3: started gossip client to 127.0.0.1:39303
I161002 04:50:53.354404 15798 storage/replica_raftstorage.go:447  [s1,r1:/M{in-ax}] generated snapshot 578d7276 for range 1 at index 12 in 49.871µs.
I161002 04:50:53.355509 15798 storage/store.go:2712  streamed snapshot: kv pairs: 27, log entries: 2
I161002 04:50:53.355680 16020 storage/replica_raftstorage.go:577  [s2] [n2,s2,r1:{-}]: with replicaID [?], applying preemptive snapshot at index 12 (id=578d7276, encoded size=16, 1 rocksdb batches, 2 log entries)
I161002 04:50:53.356374 16020 storage/replica_raftstorage.go:580  [s2] [n2,s2,r1:/M{in-ax}]: with replicaID [?], applied preemptive snapshot in 0.001s
I161002 04:50:53.356836 15798 storage/replica_command.go:3278  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > next_replica_id:2 
I161002 04:50:53.357741 16024 storage/replica.go:1701  [s1,r1:/M{in-ax}] proposing ADD_REPLICA {NodeID:2 StoreID:2 ReplicaID:2} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:2 StoreID:2 ReplicaID:2}]
I161002 04:50:53.358752 15798 storage/replica_raftstorage.go:447  [s1,r1:/M{in-ax}] generated snapshot 1ab691e0 for range 1 at index 14 in 46.345µs.
I161002 04:50:53.359176 15798 storage/store.go:2712  streamed snapshot: kv pairs: 30, log entries: 4
I161002 04:50:53.359408 16035 storage/replica_raftstorage.go:577  [s3] [n3,s3,r1:{-}]: with replicaID [?], applying preemptive snapshot at index 14 (id=1ab691e0, encoded size=16, 1 rocksdb batches, 4 log entries)
I161002 04:50:53.360340 16035 storage/replica_raftstorage.go:580  [s3] [n3,s3,r1:/M{in-ax}]: with replicaID [?], applied preemptive snapshot in 0.001s
I161002 04:50:53.360850 15798 storage/replica_command.go:3278  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > replicas:<node_id:2 store_id:2 replica_id:2 > next_replica_id:3 
I161002 04:50:53.362032 16032 storage/raft_transport.go:422  raft transport stream to node 1 established
I161002 04:50:53.363323 16042 storage/replica_trigger.go:438  [s2,r1:/M{in-ax}] unable to gossip first range; hasLease=false, err=<nil>
I161002 04:50:53.363473 15863 storage/replica.go:1701  [s1,r1:/M{in-ax}] proposing ADD_REPLICA {NodeID:3 StoreID:3 ReplicaID:3} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:2 StoreID:2 ReplicaID:2} {NodeID:3 StoreID:3 ReplicaID:3}]
I161002 04:50:53.364869 16067 storage/replica_trigger.go:438  [s2,r1:/M{in-ax}] unable to gossip first range; hasLease=false, err=<nil>
E161002 04:50:53.365346 15798 storage/client_test.go:902  engine 1: missing key "a"
E161002 04:50:53.365378 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.365461 15798 storage/client_test.go:902  engine 1: missing key "a"
E161002 04:50:53.365489 15798 storage/client_test.go:902  engine 2: missing key "a"
I161002 04:50:53.365627 15693 storage/raft_transport.go:422  raft transport stream to node 1 established
E161002 04:50:53.365656 15798 storage/client_test.go:902  engine 1: missing key "a"
E161002 04:50:53.365696 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.365882 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366012 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366122 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366255 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366363 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366499 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366598 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366717 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366819 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.366940 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.367059 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.367168 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.367327 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.367527 15798 storage/client_test.go:902  engine 2: missing key "a"
E161002 04:50:53.370307 15798 storage/client_test.go:902  engine 2: missing key "a"
I161002 04:50:53.371099 16082 storage/replica_trigger.go:438  [s3,r1:/M{in-ax}] unable to gossip first range; hasLease=false, err=<nil>
I161002 04:50:53.371878 15798 storage/replica_command.go:3278  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > replicas:<node_id:2 store_id:2 replica_id:2 > replicas:<node_id:3 store_id:3 replica_id:3 > next_replica_id:4 
W161002 04:50:53.372427 16050 storage/store.go:2604  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:249: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
W161002 04:50:53.372906 16050 storage/store.go:2604  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:249: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
I161002 04:50:53.373147 16071 storage/replica.go:1701  [s1,r1:/M{in-ax}] proposing REMOVE_REPLICA {NodeID:2 StoreID:2 ReplicaID:2} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:3 StoreID:3 ReplicaID:3}]
W161002 04:50:53.373664 16050 storage/store.go:2604  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:249: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
W161002 04:50:53.374007 16050 storage/store.go:2604  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:249: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
I161002 04:50:53.374453 15865 storage/replica_trigger.go:438  [s3,r1:/M{in-ax}] unable to gossip first range; hasLease=false, err=<nil>
I161002 04:50:53.377170 15798 gossip/gossip.go:268  NodeID set to 2
I161002 04:50:53.378991 15798 storage/replica_raftstorage.go:447  [s1,r1:/M{in-ax}] generated snapshot f698f804 for range 1 at index 22 in 49.271µs.
I161002 04:50:53.379523 15798 storage/store.go:2712  streamed snapshot: kv pairs: 38, log entries: 3
I161002 04:50:53.379719 16146 storage/replica_raftstorage.go:577  [s2] [n2,s2,r1:/M{in-ax}]: with replicaID 2, applying Raft snapshot at index 22 (id=f698f804, encoded size=16, 1 rocksdb batches, 3 log entries)
E161002 04:50:53.380215 15697 raft/raft.go:1091  [s2,r1:/M{in-ax}] 2 state.commit 22 is out of range [10, 17]
panic: 2 state.commit 22 is out of range [10, 17] [recovered]
    panic: 2 state.commit 22 is out of range [10, 17]

goroutine 15697 [running]:
panic(0x1633ac0, 0xc420da7aa0)
    /usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/cockroachdb/cockroach/util/stop.(*Stopper).Recover(0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:177 +0x6e
panic(0x1633ac0, 0xc420da7aa0)
    /usr/local/go/src/runtime/panic.go:458 +0x243
github.com/cockroachdb/cockroach/storage.(*raftLogger).Panicf(0xc420da7a10, 0x180f15f, 0x2b, 0xc42101a880, 0x4, 0x4)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.go:111 +0x107
github.com/coreos/etcd/raft.(*raft).loadState(0xc420cd2d20, 0x6, 0x0, 0x16, 0x0, 0x0, 0x0)
    /go/src/github.com/coreos/etcd/raft/raft.go:1091 +0x1db
github.com/coreos/etcd/raft.newRaft(0xc420f0b4d8, 0xd)
    /go/src/github.com/coreos/etcd/raft/raft.go:289 +0xc9b
github.com/coreos/etcd/raft.NewRawNode(0xc420f0b4d8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/coreos/etcd/raft/rawnode.go:79 +0x71
github.com/cockroachdb/cockroach/storage.(*Replica).withRaftGroupLocked(0xc420081880, 0x0, 0xc420f0b7f0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:411 +0x2a4
github.com/cockroachdb/cockroach/storage.defaultProposeRaftCommandLocked(0xc420081880, 0xc420f8ec00, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:1736 +0x1ed
github.com/cockroachdb/cockroach/storage.(*Replica).proposePendingCmdLocked(0xc420081880, 0xc420f8ec00, 0xc4203de810, 0xc420da79d8)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:1675 +0x77
github.com/cockroachdb/cockroach/storage.(*Replica).proposeRaftCommand(0xc420081880, 0x7f2b5e6f1240, 0xc4203de810, 0x311cdad160001, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:1654 +0x1f6
github.com/cockroachdb/cockroach/storage.(*Replica).addWriteCmd(0xc420081880, 0x7f2b5e6f1240, 0xc4203de810, 0x311cdad160001, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:1540 +0x17a
github.com/cockroachdb/cockroach/storage.(*Replica).Send(0xc420081880, 0x7f2b5e6f1240, 0xc4203de810, 0x311cdad160001, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:1072 +0x277
github.com/cockroachdb/cockroach/storage.(*pendingLeaseRequest).InitOrJoinRequest.func1(0x7f2b5e6f1240, 0xc420f1fe30)
    /go/src/github.com/cockroachdb/cockroach/storage/replica_range_lease.go:127 +0x174
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask.func1(0xc42100d170, 0x1ecc416, 0x1e, 0x91, 0x1977b60, 0xc4203de750, 0x7f2b5e6f1240, 0xc420f1fe30)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:236 +0xc6
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:237 +0x227

goroutine 1 [chan receive]:
testing.(*T).Run(0xc420182240, 0x181f868, 0x35, 0x1977688, 0xc42028fa01)
    /usr/local/go/src/testing/testing.go:647 +0x316
testing.RunTests.func1(0xc420182240)
    /usr/local/go/src/testing/testing.go:793 +0x6d
testing.tRunner(0xc420182240, 0xc420251bc0)
    /usr/local/go/src/testing/testing.go:610 +0x81
testing.RunTests(0x1978a48, 0x21ddfc0, 0x14b, 0x14b, 0xc420269570)
    /usr/local/go/src/testing/testing.go:799 +0x2f5
testing.(*M).Run(0xc420251ee8, 0xc42028fd30)
    /usr/local/go/src/testing/testing.go:743 +0x85
github.com/cockroachdb/cockroach/storage_test.TestMain(0xc420251ee8)
    /go/src/github.com/cockroachdb/cockroach/storage/main_test.go:57 +0x1ff
main.main()
    github.com/cockroachdb/cockroach/storage/_test/_testmain.go:724 +0xc6

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1

goroutine 15803 [chan receive]:
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func1()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:51 +0x6f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421020900)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 18 [chan receive]:
github.com/cockroachdb/cockroach/util/log.(*loggingT).flushDaemon(0x2526440)
    /go/src/github.com/cockroachdb/cockroach/util/log/clog.go:1032 +0x77
created by github.com/cockroachdb/cockroach/util/log.init.1
    /go/src/github.com/cockroachdb/cockroach/util/log/clog.go:613 +0x95

goroutine 16000 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420c01c40, 0xc4202c51f0, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc420c345a0, 0xc4202c51f0, 0x5, 0x5, 0x5f9871, 0x166eb00, 0xc420404f88)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc420c345a0, 0xc4202c51f0, 0x5, 0x5, 0x5, 0xc420859c80, 0xc4210365f0, 0x200000000)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc420c345a0, 0xc4202c51f0, 0x5, 0x5, 0x61b98c, 0xc420859ce0, 0xc420859ce0)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc4202c51e0, 0x7fffffff, 0x0, 0xd5, 0x1740a80, 0x2, 0x0, 0x2)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc4202c51e0, 0x21f56e0, 0x2573cb0, 0xc420c345a0, 0x0, 0x0, 0x1740a80, 0xc421036730, 0x7fffffff, 0xc4201e8c00, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc420866120, 0x1740a80, 0xc421036730, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/gossip.(*gossipGossipClient).Recv(0xc420875680, 0xc4201db980, 0xc420db22d0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:192 +0x62
github.com/cockroachdb/cockroach/gossip.(*client).gossip.func2.1(0x21fc5a0, 0xc420875680, 0xc421019a40, 0xc4201db980, 0xaa64af, 0xc4203d8788)
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:290 +0x35
github.com/cockroachdb/cockroach/gossip.(*client).gossip.func2()
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:298 +0x9f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420c01cc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16112 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a01c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16119 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a02c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16114 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0200)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15962 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030df00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15818 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ebc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15823 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ec60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15935 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420c01080, 0xc42030c350, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc420c344b0, 0xc42030c350, 0x5, 0x5, 0x5f9871, 0x166eb00, 0xc4204041a8)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc420c344b0, 0xc42030c350, 0x5, 0x5, 0x5, 0xc420dabc80, 0xc421261f40, 0x300000000)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc420c344b0, 0xc42030c350, 0x5, 0x5, 0x61b98c, 0xc420dabce0, 0xc420dabce0)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc42030c340, 0x7fffffff, 0x0, 0x9a1, 0x1740a80, 0x2, 0x0, 0x6)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc42030c340, 0x21f56e0, 0x2573cb0, 0xc420c344b0, 0x0, 0x0, 0x1740a80, 0xc4200a82d0, 0x7fffffff, 0xc4204acc00, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc420694000, 0x1740a80, 0xc4200a82d0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/gossip.(*gossipGossipClient).Recv(0xc420874000, 0xc42000e480, 0xc4212618b0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:192 +0x62
github.com/cockroachdb/cockroach/gossip.(*client).gossip.func2.1(0x21fc5a0, 0xc420874000, 0xc421019420, 0xc42000e480, 0xaa64af, 0xc4205e4788)
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:290 +0x35
github.com/cockroachdb/cockroach/gossip.(*client).gossip.func2()
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:298 +0x9f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4207c2a00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15977 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c40e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16030 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch(0xc4201080f0, 0x21fbfa0, 0xc4208692d0, 0xc4202f2ca8, 0x20)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:320 +0x1b0
github.com/cockroachdb/cockroach/storage._MultiRaft_RaftMessageBatch_Handler(0x176c840, 0xc4201080f0, 0x21f8a00, 0xc42100c3f0, 0x8b6f29, 0xc42030c7c4)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:300 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc42053c000, 0x21fc240, 0xc420490240, 0xc42127b4a0, 0xc42081e480, 0x21d2c80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc42053c000, 0x21fc240, 0xc420490240, 0xc42127b4a0, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc420f189d0, 0xc42053c000, 0x21fc240, 0xc420490240, 0xc42127b4a0)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 15992 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1053 +0x314
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420875260)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15993 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func2()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1072 +0x314
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420875270)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16001 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftSnapshot(0xc4201080f0, 0x21fc000, 0xc420eb4070, 0xc420cf84a8, 0x20)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:357 +0x23b
github.com/cockroachdb/cockroach/storage._MultiRaft_RaftSnapshot_Handler(0x176c840, 0xc4201080f0, 0x21f8a00, 0xc420f7c000, 0x2524f80, 0xc420a6e640)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:326 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc42053c000, 0x21fc240, 0xc420490240, 0xc420f76000, 0xc42081e480, 0x21d2ca0, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc42053c000, 0x21fc240, 0xc420490240, 0xc420f76000, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc420f189d0, 0xc42053c000, 0x21fc240, 0xc420490240, 0xc420f76000)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 15964 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030df40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15890 [chan receive]:
github.com/cockroachdb/cockroach/gossip.(*server).start.func3()
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:370 +0x66
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4205c3300)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16081 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ff80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16012 [select]:
github.com/cockroachdb/cockroach/storage.(*replicaScanner).waitAndProcess(0xc4211b42d0, 0xecf82892d, 0xc414e9bba2, 0x2525340, 0xc420c00080, 0xc420193ef0, 0x0, 0x61acd3)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:205 +0x234
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:268 +0x311
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420746940)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16103 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0060)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16146 [runnable]:
sync.runtime_Semacquire(0xc420cb525c)
    /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc420cb5258)
    /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/cockroachdb/cockroach/util/syncutil.(*TimedMutex).Lock(0xc420081920)
    /go/src/github.com/cockroachdb/cockroach/util/syncutil/timedmutex.go:63 +0x30
github.com/cockroachdb/cockroach/storage.(*Replica).applySnapshot(0xc420081880, 0x7f2b5e6f1240, 0xc420728420, 0x544f812204f898f6, 0x1c83521825e7ae8c, 0x1, 0x2573cb0, 0x0, 0x0, 0xc420eb40a0, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/replica_raftstorage.go:663 +0xd11
github.com/cockroachdb/cockroach/storage.(*Store).processRaftRequest(0xc420238dc0, 0x7f2b5e6f1240, 0xc420728420, 0xc420436058, 0x544f812204f898f6, 0x1c83521825e7ae8c, 0x1, 0x2573cb0, 0x0, 0x0, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2533 +0x7c6
github.com/cockroachdb/cockroach/storage.(*Store).HandleSnapshot(0xc420238dc0, 0xc420436000, 0x21fc000, 0xc420eb4070, 0xc4201d0001, 0xc4208188ed)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2298 +0x4df
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftSnapshot.func1.1(0x21fc000, 0xc420eb4070, 0xc4201080f0, 0xc420cf8740, 0xc420cf8748)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:352 +0x14d
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftSnapshot.func1(0x7f2b5e6f1240, 0xc420728300)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:353 +0x45
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask.func1(0xc420193560, 0x1ecc75a, 0x19, 0x162, 0x1977b60, 0xc4207283c0, 0x7f2b5e6f1240, 0xc420728300)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:236 +0xc6
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:237 +0x227

goroutine 16109 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0140)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15968 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dfc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15814 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eb40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15854 [select]:
github.com/cockroachdb/cockroach/gossip.(*server).Gossip(0xc421018000, 0x21fbca0, 0xc420f18a30, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:180 +0x53c
github.com/cockroachdb/cockroach/gossip._Gossip_Gossip_Handler(0x17314c0, 0xc421018000, 0x21f8a00, 0xc4204902d0, 0xc420e48180, 0x18f618328da)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:209 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4200ea0f0, 0xc421285b60, 0x21cbf80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4200ea0f0, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42101db90, 0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4200ea0f0)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 16074 [select]:
github.com/cockroachdb/cockroach/storage.(*StorePool).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store_pool.go:346 +0x3db
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100f6a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15816 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eb80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15846 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).Start.func3()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:978 +0x165
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100efa0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15678 [select]:
google.golang.org/grpc.(*addrConn).transportMonitor(0xc4212d6b40)
    /go/src/google.golang.org/grpc/clientconn.go:720 +0x63e
created by google.golang.org/grpc.(*ClientConn).resetAddrConn
    /go/src/google.golang.org/grpc/clientconn.go:467 +0x6e2

goroutine 15881 [chan receive]:
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func1()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:51 +0x6f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420b26ed0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15875 [select]:
github.com/cockroachdb/cockroach/storage.(*replicaScanner).waitAndProcess(0xc420193a70, 0xecf82892d, 0x1460efa6, 0x2525340, 0xc420c00080, 0xc420193680, 0xc420080000, 0xc41460f8ad)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:205 +0x234
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1.1(0xc420080000, 0xc4210201b0)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:263 +0x7c
github.com/cockroachdb/cockroach/storage.(*storeRangeSet).Visit(0xc421020600, 0xc420c00b00)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:254 +0x21b
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:265 +0x233
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42113dba0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15989 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).raftTickLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2834 +0x334
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420875210)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16106 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a00c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15950 [select]:
google.golang.org/grpc/transport.(*http2Server).controller(0xc420cc4990)
    /go/src/google.golang.org/grpc/transport/http2_server.go:673 +0x69c
created by google.golang.org/grpc/transport.newHTTP2Server
    /go/src/google.golang.org/grpc/transport/http2_server.go:139 +0x767

goroutine 16105 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a00a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15958 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030de80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16069 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ef1f40, 0xc420aeeef0, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc42127b860, 0xc420aeeef0, 0x5, 0x5, 0x0, 0xc420019500, 0xc42040ddc0)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc42127b860, 0xc420aeeef0, 0x5, 0x5, 0x5, 0x4, 0x0, 0x4)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc42127b860, 0xc420aeeef0, 0x5, 0x5, 0x6b7e91, 0x0, 0xc4210f9b30)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc420aeeee0, 0x7fffffff, 0x6b7e91, 0x2, 0xc42040df82, 0xc42040def0, 0x6b7e92, 0xaa4890)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc420aeeee0, 0x21f56e0, 0x2573cb0, 0xc42127b860, 0x0, 0x0, 0x1747ee0, 0xc42084daa0, 0x7fffffff, 0xc4204acc00, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc420867b00, 0x1747ee0, 0xc42084daa0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchClient).Recv(0xc420869c90, 0xc4205921a0, 0x40004, 0xc42040df88)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:251 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1.1(0x21fd1a0, 0xc420869c90, 0xc420016640, 0xc420ebf720, 0xc42040df88, 0xc42040df90)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:451 +0x56
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:466 +0x52
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421239530)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16102 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0040)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15726 [IO wait]:
net.runtime_pollWait(0x7f2b5bd807b0, 0x72, 0x8)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420a6d790, 0x72, 0xc420da9b08, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420a6d790, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc420a6d730, 0xc420a92000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc4210920e8, 0xc420a92000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc4208edce0)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc4208edce0, 0xc420182038, 0x9, 0x9, 0x645760, 0xc420ed8300, 0xc420da9d08)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc4208edce0, 0xc420182038, 0x9, 0x9, 0x9, 0xc42086cba8, 0x21e6420, 0xc420728540)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc4208edce0, 0xc420182038, 0x9, 0x9, 0xd4b208, 0xc420c3e690, 0xc420eb41a5)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc420182038, 0x9, 0x9, 0x21e22e0, 0xc4208edce0, 0x0, 0xc400000000, 0x0, 0x9)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc420182000, 0x21ebda0, 0xc420728510, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc42081f8f0, 0xc420728510, 0xc420728510, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Client).reader(0xc420321000)
    /go/src/google.golang.org/grpc/transport/http2_client.go:921 +0xb6
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:203 +0x8b1

goroutine 16115 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0220)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15949 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80f30, 0x72, 0xc)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420d403e0, 0x72, 0xc420dac8e8, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420d403e0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc420d40380, 0xc420a70000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc421092180, 0xc420a70000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc420567e60)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc420567e60, 0xc4201823f8, 0x9, 0x9, 0x1971b49, 0x1971b48, 0xc420fd6478)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc420567e60, 0xc4201823f8, 0x9, 0x9, 0x9, 0xc420dacaf8, 0x645760, 0xc4207c2f40)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc420567e60, 0xc4201823f8, 0x9, 0x9, 0xd428c2, 0xc42029e164, 0xc420dacb60)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc4201823f8, 0x9, 0x9, 0x21e22e0, 0xc420567e60, 0x0, 0xc400000000, 0xc420dacc90, 0xd5048c)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc4201823c0, 0x39, 0x39, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc4204043f0, 0xc42086cbd0, 0xc42086cbd0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420cc4990, 0xc420404480)
    /go/src/google.golang.org/grpc/transport/http2_server.go:260 +0x200
google.golang.org/grpc.(*Server).serveStreams(0xc4207aab40, 0x21fc240, 0xc420cc4990)
    /go/src/google.golang.org/grpc/server.go:424 +0x160
google.golang.org/grpc.(*Server).serveNewHTTP2Transport(0xc4207aab40, 0x21fd320, 0xc421092180, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:411 +0x3da
google.golang.org/grpc.(*Server).handleRawConn(0xc4207aab40, 0x21fd320, 0xc421092180)
    /go/src/google.golang.org/grpc/server.go:388 +0x470
created by google.golang.org/grpc.(*Server).Serve
    /go/src/google.golang.org/grpc/server.go:357 +0x1a9

goroutine 15858 [select]:
github.com/cockroachdb/cockroach/storage.(*replicaScanner).waitAndProcess(0xc4201939e0, 0xecf82892d, 0x145f61d5, 0x2525340, 0xc420c00080, 0xc420193680, 0xc420080000, 0xc4145f69a1)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:205 +0x234
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1.1(0xc420080000, 0xc4210201b0)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:263 +0x7c
github.com/cockroachdb/cockroach/storage.(*storeRangeSet).Visit(0xc4210202a0, 0xc420ef18c0)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:254 +0x21b
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:265 +0x233
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420980480)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16008 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4207466a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15886 [select]:
google.golang.org/grpc/transport.(*http2Client).controller(0xc4212d5c00)
    /go/src/google.golang.org/grpc/transport/http2_client.go:999 +0x59d
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:233 +0xe78

goroutine 16010 [select]:
github.com/cockroachdb/cockroach/storage.(*replicaScanner).waitAndProcess(0xc4211b4240, 0xecf82892d, 0xc414e7286d, 0x2525340, 0xc420c00080, 0xc420193ef0, 0x0, 0x61acd3)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:205 +0x234
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:268 +0x311
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4207466e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15817 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eba0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15982 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c41a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15873 [semacquire]:
sync.runtime_Semacquire(0xc420cb4ef4)
    /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc420cb4ef0)
    /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/cockroachdb/cockroach/util/syncutil.(*TimedMutex).Lock(0xc420238ff8)
    /go/src/github.com/cockroachdb/cockroach/util/syncutil/timedmutex.go:63 +0x30
github.com/cockroachdb/cockroach/storage.(*storeRangeSet).Visit(0xc420f1fcb0, 0xc4205ebcc0)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:232 +0x3e
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:265 +0x233
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52340)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15680 [chan receive]:
github.com/cockroachdb/cockroach/gossip.(*server).start.func3()
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:370 +0x66
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42100e140)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16054 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc4212d5c00, 0xc4203f8780, 0xc42127d8c0)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16066 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ef1800, 0xc420aee7b0, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc42127b680, 0xc420aee7b0, 0x5, 0x5, 0xc42054d410, 0x61e753, 0xc42113d768)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc42127b680, 0xc420aee7b0, 0x5, 0x5, 0x5, 0xffffffff, 0x1, 0x8b7c59)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc42127b680, 0xc420aee7b0, 0x5, 0x5, 0x4, 0xc4200c1c58, 0xecf828901)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc420aee7a0, 0x7fffffff, 0xc42054d5c0, 0x7da8d2, 0xc4210208d0, 0x21ec220, 0xc4210208d0, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc420aee7a0, 0x21f56e0, 0x2573cb0, 0xc42127b680, 0x0, 0x0, 0x1747ee0, 0xc421238cf0, 0x7fffffff, 0xc4201e8c00, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc420867560, 0x1747ee0, 0xc421238cf0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchClient).Recv(0xc420869550, 0xc42054d740, 0x6a29a8, 0xc42100c5a0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:251 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1.1(0x21fd1a0, 0xc420869550, 0xc420ef1380, 0xc4201080f0, 0xc42054d788, 0xc42054d790)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:451 +0x56
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:466 +0x52
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421238cc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16108 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0120)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15824 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ec80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15815 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eb60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15837 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ee20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15978 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4100)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16122 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0360)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16056 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch(0xc4212861e0, 0x21fbfa0, 0xc420875780, 0xc4205144a8, 0x20)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:320 +0x1b0
github.com/cockroachdb/cockroach/storage._MultiRaft_RaftMessageBatch_Handler(0x176c840, 0xc4212861e0, 0x21f8a00, 0xc4211b4e10, 0xc420c00840, 0x30)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:300 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4203f8870, 0xc421284b10, 0x21d2c80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4203f8870, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42101db90, 0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc4203f8870)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 16075 [select]:
github.com/cockroachdb/cockroach/storage.(*bookie).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/reservation.go:274 +0x217
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100f8c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15976 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c40c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15834 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100edc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15969 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dfe0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16077 [runnable]:
sync.(*Mutex).Lock(0xc420d40250)
    /usr/local/go/src/sync/mutex.go:44
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:170 +0xdc
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ff00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16121 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0340)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16078 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ff20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16033 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc4204b0c00, 0xc42127b680, 0xc420867560)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16076 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100fee0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15605 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc420321000, 0xc420c3e690, 0xc420eee480)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16050 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ff3180, 0xc4202c5830, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc4203f8690, 0xc4202c5830, 0x5, 0x5, 0x3eb2, 0x1ecc694, 0x10)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc4203f8690, 0xc4202c5830, 0x5, 0x5, 0x5, 0xcc, 0x3, 0xcc)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc4203f8690, 0xc4202c5830, 0x5, 0x5, 0xcc, 0x1ecc694, 0x10)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc4202c5820, 0x7fffffff, 0x27, 0xc42073de08, 0x3, 0x3, 0xc42073dd30, 0xa4206e)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc4202c5820, 0x21f56e0, 0x2573cb0, 0xc4203f8690, 0x0, 0x0, 0x1747ee0, 0xc420f1e8d0, 0x7fffffff, 0xc42003b400, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc42127cb40, 0x1747ee0, 0xc420f1e8d0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchClient).Recv(0xc420875250, 0x7f2b5e6f1240, 0xc420f1e8a0, 0xc420f1e630)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:251 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1.1(0x21fd1a0, 0xc420875250, 0xc420ff3080, 0xc4212861e0, 0xc420514788, 0xc420514790)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:451 +0x56
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:466 +0x52
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4208902a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16100 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0000)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15876 [select]:
github.com/cockroachdb/cockroach/gossip.(*client).gossip(0xc421019420, 0x7f2b5e6f1280, 0xc420c00fc0, 0xc42000e480, 0x21fc5a0, 0xc420874000, 0xc420193560, 0xc42101dfc0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:302 +0x3c4
github.com/cockroachdb/cockroach/gossip.(*client).start.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:126 +0x527
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420c00f40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15693 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue(0xc420ebf720, 0xc400000001, 0xc420fd6600, 0xc420016640, 0x21fd1a0, 0xc420869c90, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:477 +0x65f
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess.func1(0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:424 +0x39e
github.com/rubyist/circuitbreaker.(*Breaker).Call(0xc420cc47e0, 0xc420016a40, 0x0, 0xc420200340, 0xc42094d730)
    /go/src/github.com/rubyist/circuitbreaker/circuitbreaker.go:339 +0x6b
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess(0xc420ebf720, 0xc400000001, 0xc420fd6600, 0xc420016640)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:425 +0x138
github.com/cockroachdb/cockroach/storage.(*RaftTransport).SendAsync.func2.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:558 +0x4c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4208862a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15991 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).Start.func3()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:978 +0x165
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4700)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15813 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eb20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15835 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ede0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15971 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4020)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15676 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80ab0, 0x72, 0x5)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420763720, 0x72, 0xc42004ab08, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420763720, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc4207636c0, 0xc420d02000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc42013c110, 0xc420d02000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc42074a240)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc42074a240, 0xc4212ac038, 0x9, 0x9, 0x645760, 0xc4207c3140, 0xc42004ad08)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc42074a240, 0xc4212ac038, 0x9, 0x9, 0x9, 0xc420b278c8, 0x21e6420, 0xc420895a10)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc42074a240, 0xc4212ac038, 0x9, 0x9, 0xd4b208, 0xc420c345a0, 0xc42086e0e0)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc4212ac038, 0x9, 0x9, 0x21e22e0, 0xc42074a240, 0x0, 0xc400000000, 0x0, 0xda)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc4212ac000, 0x21ebda0, 0xc4208959e0, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc420eb6090, 0xc4208959e0, 0xc4208959e0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Client).reader(0xc4204b0c00)
    /go/src/google.golang.org/grpc/transport/http2_client.go:921 +0xb6
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:203 +0x8b1

goroutine 16017 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc420321000, 0xc4203f8690, 0xc42127cb40)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16104 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0080)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16110 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0160)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16007 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420746680)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15880 [select]:
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).startStats(0xc4200c1ce0)
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:208 +0xa63
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).(github.com/cockroachdb/cockroach/kv.startStats)-fm()
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:193 +0x2a
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420874780)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16111 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a01a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16128 [select]:
github.com/cockroachdb/cockroach/storage.(*Replica).redirectOnOrAcquireLease(0xc420081880, 0x7f2b5e6f1240, 0xc420f1fe30, 0x645760)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:823 +0x502
github.com/cockroachdb/cockroach/storage.(*Replica).getLeaseForGossip.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:3243 +0x6f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunTask(0xc42100d170, 0xc420483db0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:216 +0x100
github.com/cockroachdb/cockroach/storage.(*Replica).getLeaseForGossip(0xc420081880, 0x7f2b5e6f1240, 0xc420f1fe30, 0x10, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:3274 +0x112
github.com/cockroachdb/cockroach/storage.(*Store).maybeGossipSystemConfig(0xc420238dc0, 0x6e7190, 0xc4205db6d8)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1121 +0x98
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func2()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1065 +0x54
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420cb56b0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16126 [runnable]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).GetSystemConfig(0xc42000e480, 0xc42097ac60, 0x0, 0xc420514f01, 0x61ba91)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:735
github.com/cockroachdb/cockroach/storage.(*Store).Start.func3()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:980 +0xd0
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0400)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15709 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc4209803e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15798 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420e6cc00, 0xc42095a790, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc420c3e690, 0xc42095a790, 0x5, 0x5, 0x0, 0x0, 0x65)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc420c3e690, 0xc42095a790, 0x5, 0x5, 0x5, 0x65, 0x0, 0x8b6f29)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc420c3e690, 0xc42095a790, 0x5, 0x5, 0xc4207a8e70, 0xa3bcdc, 0x252646c)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc42095a780, 0x7fffffff, 0x0, 0x0, 0x0, 0x7f2b5f438e00, 0x0, 0x1978e68)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc42095a780, 0x21f56e0, 0x2573cb0, 0xc420c3e690, 0x0, 0x0, 0x1748420, 0xc4201d01c0, 0x7fffffff, 0xc4204adc00, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc420eee480, 0x1748420, 0xc4201d01c0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftSnapshotClient).Recv(0xc420f18a80, 0xc4207a91c8, 0x2, 0x2)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:282 +0x62
github.com/cockroachdb/cockroach/storage.snapshotClientWithBreaker.Recv(0x21fd200, 0xc420f18a80, 0xc420fd43f0, 0xc4207a91c8, 0x2, 0x2)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:594 +0x31
github.com/cockroachdb/cockroach/storage.(*snapshotClientWithBreaker).Recv(0xc42095a7a0, 0xc420e6cb00, 0x181940c, 0x30)
    <autogenerated>:341 +0x64
github.com/cockroachdb/cockroach/storage.sendSnapshot(0x21fd440, 0xc42095a7a0, 0x1, 0x2573cb0, 0x0, 0x0, 0xc420f18618, 0x2, 0x8, 0xc42095a600, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2714 +0xad1
github.com/cockroachdb/cockroach/storage.(*RaftTransport).SendSnapshot(0xc4212861e0, 0x7f2b5e6a71f0, 0xc420010540, 0x1, 0x2573cb0, 0x0, 0x0, 0xc420f18618, 0x2, 0x8, ...)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:636 +0x2c0
github.com/cockroachdb/cockroach/storage.(*Replica).ChangeReplicas(0xc420080000, 0x7f2b5e6a71f0, 0xc420010540, 0x200000000, 0x2, 0xc4205e83c0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/replica_command.go:3247 +0x97a
github.com/cockroachdb/cockroach/storage_test.(*multiTestContext).replicateRange(0xc4209fb380, 0x1, 0xc4207a9c58, 0x1, 0x1)
    /go/src/github.com/cockroachdb/cockroach/storage/client_test.go:844 +0x3cf
github.com/cockroachdb/cockroach/storage_test.runReplicateRestartAfterTruncation(0xc420580240, 0xc42000c501)
    /go/src/github.com/cockroachdb/cockroach/storage/client_raft_test.go:1300 +0xa47
github.com/cockroachdb/cockroach/storage_test.TestReplicateRestartAfterTruncationWithRemoveAndReAdd(0xc420580240)
    /go/src/github.com/cockroachdb/cockroach/storage/client_raft_test.go:1214 +0x64
testing.tRunner(0xc420580240, 0x1977688)
    /usr/local/go/src/testing/testing.go:610 +0x81
created by testing.(*T).Run
    /usr/local/go/src/testing/testing.go:646 +0x2ec

goroutine 16123 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0380)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15681 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).bootstrap.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:915 +0x47d
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420f18080)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16016 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue(0xc4212861e0, 0x7f2b00000002, 0xc420325aa0, 0xc420ff3080, 0x21fd1a0, 0xc420875250, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:477 +0x65f
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess.func1(0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:424 +0x39e
github.com/rubyist/circuitbreaker.(*Breaker).Call(0xc420fd43f0, 0xc420ff30c0, 0x0, 0xc4207c3a80, 0xc4204f2730)
    /go/src/github.com/rubyist/circuitbreaker/circuitbreaker.go:339 +0x6b
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess(0xc4212861e0, 0xc400000002, 0xc420325aa0, 0xc420ff3080)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:425 +0x138
github.com/cockroachdb/cockroach/storage.(*RaftTransport).SendAsync.func2.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:558 +0x4c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420890150)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15885 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80870, 0x72, 0xb)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420a91800, 0x72, 0xc420daeb08, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420a91800, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc420a917a0, 0xc420d1c000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc42012a2d0, 0xc420d1c000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc42057af00)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc42057af00, 0xc420580938, 0x9, 0x9, 0xc420daeca8, 0x645760, 0xc4207c3080)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc42057af00, 0xc420580938, 0x9, 0x9, 0x9, 0x30, 0xc42081e038, 0x21e6420)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc42057af00, 0xc420580938, 0x9, 0x9, 0xc420daeeb0, 0xd4c270, 0xc42127b1d0)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc420580938, 0x9, 0x9, 0x21e22e0, 0xc42057af00, 0x0, 0xc400000000, 0xc420873470, 0xc)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc420580900, 0x0, 0x0, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc420b27200, 0xc421238570, 0xc421238570, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Client).reader(0xc4212d5c00)
    /go/src/google.golang.org/grpc/transport/http2_client.go:921 +0xb6
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:203 +0x8b1

goroutine 16080 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ff60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15889 [chan receive]:
github.com/cockroachdb/cockroach/gossip.(*server).start.func3()
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:370 +0x66
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42030dde0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16127 [semacquire]:
sync.runtime_Semacquire(0xc420cb525c)
    /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc420cb5258)
    /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/cockroachdb/cockroach/util/syncutil.(*TimedMutex).Lock(0xc420081920)
    /go/src/github.com/cockroachdb/cockroach/util/syncutil/timedmutex.go:63 +0x30
github.com/cockroachdb/cockroach/storage.(*Replica).Desc(0xc420081880, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:870 +0x46
github.com/cockroachdb/cockroach/storage.(*Replica).endKey(0xc420081880, 0x18, 0x1971b31, 0x1971b30)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:3512 +0x2b
github.com/cockroachdb/cockroach/storage.(*Replica).Less(0xc420081880, 0x21e87a0, 0xc4201d08e0, 0x18)
    /go/src/github.com/cockroachdb/cockroach/storage/replica.go:3517 +0x2f
github.com/google/btree.(*BTree).AscendGreaterOrEqual.func1(0x21e53e0, 0xc420081880, 0x7f2b5f438ee0)
    /go/src/github.com/google/btree/btree.go:597 +0x43
github.com/google/btree.(*node).iterate(0xc4210ad300, 0xc420f85b98, 0x19783d0, 0xc420f85c20, 0x16a1300)
    /go/src/github.com/google/btree/btree.go:433 +0x6b
github.com/google/btree.(*BTree).AscendGreaterOrEqual(0xc42100f760, 0x21e87a0, 0xc4201d08e0, 0xc420f85c20)
    /go/src/github.com/google/btree/btree.go:599 +0x78
github.com/cockroachdb/cockroach/storage.(*Store).visitReplicasLocked(0xc420238dc0, 0x2573880, 0x0, 0x0, 0x21e0530, 0x2, 0x2, 0xc420f85cf8)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1338 +0x11e
github.com/cockroachdb/cockroach/storage.(*Store).LookupReplica(0xc420238dc0, 0x2573880, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1285 +0x11e
github.com/cockroachdb/cockroach/storage.(*Store).maybeGossipFirstRange(0xc420238dc0, 0x6e71b7, 0xc4205126d8)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1096 +0x17b
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1046 +0x54
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420cb56a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15892 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).manage.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:952 +0x2fb
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420872bf0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15853 [select]:
google.golang.org/grpc/transport.(*http2Server).controller(0xc420490240)
    /go/src/google.golang.org/grpc/transport/http2_server.go:673 +0x69c
created by google.golang.org/grpc/transport.newHTTP2Server
    /go/src/google.golang.org/grpc/transport/http2_server.go:139 +0x767

goroutine 15882 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80cf0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420a91640, 0x72, 0xc420cec5f0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420a91640, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).accept(0xc420a915e0, 0x0, 0x21e71e0, 0xc4207461a0)
    /usr/local/go/src/net/fd_unix.go:419 +0x238
net.(*TCPListener).accept(0xc42012a2c8, 0x624eee, 0xc420cec6a0, 0xa586e9)
    /usr/local/go/src/net/tcpsock_posix.go:132 +0x2e
net.(*TCPListener).Accept(0xc42012a2c8, 0x19787c0, 0xc4207aab40, 0x21fd320, 0xc421092180)
    /usr/local/go/src/net/tcpsock.go:222 +0x49
google.golang.org/grpc.(*Server).Serve(0xc4207aab40, 0x21f49a0, 0xc42012a2c8, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:348 +0x15a
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func2()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:58 +0x3c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42030dc60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15869 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52280)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15434 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ff2080, 0xc420aee090, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc42127a000, 0xc420aee090, 0x5, 0x5, 0xc420473918, 0x63126b, 0x40)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc42127a000, 0xc420aee090, 0x5, 0x5, 0x5, 0xc4207a0500, 0x0, 0xc4207a0580)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc42127a000, 0xc420aee090, 0x5, 0x5, 0xc400000001, 0x0, 0x5ff4d9)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc420aee080, 0x7fffffff, 0x0, 0x38, 0x1971b8c, 0x1971b8b, 0xc41ffc2fcf, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc420aee080, 0x21f56e0, 0x2573cb0, 0xc42127a000, 0x0, 0x0, 0x1751c00, 0xc4207a05c0, 0x7fffffff, 0x20001, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc42100c240, 0x1751c00, 0xc4207a05c0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/gossip.(*gossipGossipServer).Recv(0xc420e0c050, 0x0, 0x0, 0x100010000)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:228 +0x62
github.com/cockroachdb/cockroach/gossip.(Gossip_GossipServer).Recv-fm(0xc421018018, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:143 +0x2f
github.com/cockroachdb/cockroach/gossip.(*server).gossipReceiver(0xc421018000, 0xc421096000, 0xc420ff22c0, 0xc420473f50, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:310 +0x63a
github.com/cockroachdb/cockroach/gossip.(*server).Gossip.func3.1()
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:143 +0x87
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420ff2300)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16055 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ff3700, 0xc4202c5b50, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc4203f8780, 0xc4202c5b50, 0x5, 0x5, 0xc420514410, 0x61e753, 0x179ebc0)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc4203f8780, 0xc4202c5b50, 0x5, 0x5, 0x5, 0x2, 0x0, 0xc42001c000)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc4203f8780, 0xc4202c5b50, 0x5, 0x5, 0x2, 0x639093, 0x0)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc4202c5b40, 0x7fffffff, 0x8e1d14, 0xc420c00848, 0xc420c00840, 0x30, 0x601ae6, 0xc420514510)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc4202c5b40, 0x21f56e0, 0x2573cb0, 0xc4203f8780, 0x0, 0x0, 0x1747ee0, 0xc420890720, 0x7fffffff, 0xc42003b400, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*clientStream).RecvMsg(0xc42127d8c0, 0x1747ee0, 0xc420890720, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:305 +0xc4
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchClient).Recv(0xc4208756f0, 0x601b7d, 0xc420592368, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:251 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1.1(0x21fd1a0, 0xc4208756f0, 0xc420ff35c0, 0xc4212861e0, 0xc420514788, 0xc420514790)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:451 +0x56
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:466 +0x52
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4208906f0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15956 [select]:
github.com/cockroachdb/cockroach/storage.(*bookie).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/reservation.go:274 +0x217
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030de00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15984 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4440)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15830 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ed40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15871 [select]:
github.com/cockroachdb/cockroach/storage.(*replicaScanner).waitAndProcess(0xc42100d320, 0xecf82892d, 0x16a7921c, 0x2525340, 0xc420c00080, 0xc42100d170, 0xc420081880, 0xc416a79e12)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:205 +0x234
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1.1(0xc420081880, 0xc420f1f830)
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:263 +0x7c
github.com/cockroachdb/cockroach/storage.(*storeRangeSet).Visit(0xc420f1f8f0, 0xc4205eb900)
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:254 +0x21b
github.com/cockroachdb/cockroach/storage.(*replicaScanner).scanLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scanner.go:265 +0x233
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e522c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16040 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch(0xc4212861e0, 0x21fbfa0, 0xc420e0c430, 0xc420cf34a8, 0x20)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:320 +0x1b0
github.com/cockroachdb/cockroach/storage._MultiRaft_RaftMessageBatch_Handler(0x176c840, 0xc4212861e0, 0x21f8a00, 0xc420192090, 0x8b6d40, 0xc420ebfd80)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:300 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc420c340f0, 0xc421284b10, 0x21d2c80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc420c340f0, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42101db90, 0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc420c340f0)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 15819 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ebe0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15847 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1053 +0x314
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420f18750)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15891 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).bootstrap.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:915 +0x47d
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420872be0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15679 [select]:
github.com/cockroachdb/cockroach/rpc.(*Context).runHeartbeat(0xc42113a600, 0xc4212d4f00, 0xc42101daa0, 0xf, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:301 +0x650
github.com/cockroachdb/cockroach/rpc.(*Context).GRPCDial.func1.1.1()
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:221 +0x69
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420eb6750)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15841 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eea0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15988 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c44e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15831 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ed60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16073 [select]:
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).startStats(0xc420cfba20)
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:208 +0xa63
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).(github.com/cockroachdb/cockroach/kv.startStats)-fm()
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:193 +0x2a
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420cb45b0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15985 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4460)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16118 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0280)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15957 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030de60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15692 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420016140, 0xc42029e370, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc420cd20f0, 0xc42029e370, 0x5, 0x5, 0x8e41e2, 0x57f0922d, 0xc41699a95b)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc420cd20f0, 0xc42029e370, 0x5, 0x5, 0x5, 0xecf82892d, 0xc416999ddd, 0x2525340)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc420cd20f0, 0xc42029e370, 0x5, 0x5, 0x8, 0xc42003a800, 0xc4205e7380)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc42029e360, 0x7fffffff, 0x34, 0x18, 0x1971b31, 0x1971b30, 0xc41ffb52be, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc42029e360, 0x21f56e0, 0x2573cb0, 0xc420cd20f0, 0x0, 0x0, 0x1747e00, 0xc42095a800, 0x7fffffff, 0xc420da6101, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc420cc4120, 0x1747e00, 0xc42095a800, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchServer).Recv(0xc420da6120, 0x7f2b5e6f1240, 0xc420405d40, 0xc420ee2500)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:319 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1.1(0x21fbfa0, 0xc420da6120, 0xc420ebf720, 0xc42094d788, 0xc42094d790)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:291 +0x45
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:314 +0x45
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420405dd0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15979 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4120)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15802 [select]:
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).startStats(0xc42018b4a0)
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:208 +0xa63
github.com/cockroachdb/cockroach/kv.(*TxnCoordSender).(github.com/cockroachdb/cockroach/kv.startStats)-fm()
    /go/src/github.com/cockroachdb/cockroach/kv/txn_coord_sender.go:193 +0x2a
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42101c4f0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15963 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030df20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15848 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).startGossip.func2()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:1072 +0x314
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420f18760)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15887 [select]:
google.golang.org/grpc.(*addrConn).transportMonitor(0xc4212d77c0)
    /go/src/google.golang.org/grpc/clientconn.go:720 +0x63e
created by google.golang.org/grpc.(*ClientConn).resetAddrConn
    /go/src/google.golang.org/grpc/clientconn.go:467 +0x6e2

goroutine 15972 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4040)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15711 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420980420)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15808 [select]:
google.golang.org/grpc/transport.(*http2Server).controller(0xc420193b90)
    /go/src/google.golang.org/grpc/transport/http2_server.go:673 +0x69c
created by google.golang.org/grpc/transport.newHTTP2Server
    /go/src/google.golang.org/grpc/transport/http2_server.go:139 +0x767

goroutine 15839 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ee60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15843 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ef00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15874 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42113db80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15799 [chan receive]:
github.com/cockroachdb/cockroach/rpc.NewContext.func1()
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:138 +0x76
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42113c140)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15723 [IO wait]:
net.runtime_pollWait(0x7f2b5bd810b0, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420a6d5d0, 0x72, 0xc4205875f0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420a6d5d0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).accept(0xc420a6d570, 0x0, 0x21e71e0, 0xc42100f120)
    /usr/local/go/src/net/fd_unix.go:419 +0x238
net.(*TCPListener).accept(0xc4210920e0, 0x624eee, 0xc4205876a0, 0xa586e9)
    /usr/local/go/src/net/tcpsock_posix.go:132 +0x2e
net.(*TCPListener).Accept(0xc4210920e0, 0x19787c0, 0xc42053c000, 0x21fd320, 0xc42013c198)
    /usr/local/go/src/net/tcpsock.go:222 +0x49
google.golang.org/grpc.(*Server).Serve(0xc42053c000, 0x21f49a0, 0xc4210920e0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:348 +0x15a
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func2()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:58 +0x3c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4205c3120)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15997 [select]:
github.com/cockroachdb/cockroach/gossip.(*client).gossip(0xc421019a40, 0x7f2b5e6f1280, 0xc420c01b80, 0xc4201db980, 0x21fc5a0, 0xc420875680, 0xc420193560, 0xc420875640, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:302 +0x3c4
github.com/cockroachdb/cockroach/gossip.(*client).start.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/client.go:126 +0x527
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420c01b00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16099 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ffc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15821 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ec20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15970 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4000)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15960 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dec0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15833 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eda0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15955 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).manage.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:952 +0x2fb
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420875120)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15987 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c44a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15998 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc4204b0c00, 0xc420c345a0, 0xc420866120)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16009 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4207466c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15974 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4080)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15965 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030df60)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16117 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0260)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15800 [chan receive]:
github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open.func1(0xc4200150e0)
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:390 +0x44
created by github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:391 +0x6eb

goroutine 15810 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).manage.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:952 +0x2fb
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420f18090)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15967 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dfa0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16098 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ffa0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15981 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4180)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15954 [select]:
github.com/cockroachdb/cockroach/gossip.(*Gossip).bootstrap.func1()
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.go:915 +0x47d
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420875110)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15812 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eb00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15868 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52260)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15433 [select]:
github.com/cockroachdb/cockroach/gossip.(*server).Gossip(0xc421018000, 0x21fbca0, 0xc420e0c050, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:180 +0x53c
github.com/cockroachdb/cockroach/gossip._Gossip_Gossip_Handler(0x17314c0, 0xc421018000, 0x21f8a00, 0xc42100c240, 0x0, 0x4)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:209 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc42127a000, 0xc421285b60, 0x21cbf80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc42127a000, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc42101db90, 0xc4200aa960, 0x21fc240, 0xc420193b90, 0xc42127a000)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 16031 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ef1340, 0xc420aee490, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc42127b4a0, 0xc420aee490, 0x5, 0x5, 0x0, 0xc3, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc42127b4a0, 0xc420aee490, 0x5, 0x5, 0x5, 0xc8, 0xc42061ec30, 0x0)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc42127b4a0, 0xc420aee490, 0x5, 0x5, 0x0, 0xc42079bd00, 0x63126b)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc420aee480, 0x7fffffff, 0xc8, 0x18, 0x1971b31, 0x1971b30, 0xc41ff7f8e3, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc420aee480, 0x21f56e0, 0x2573cb0, 0xc42127b4a0, 0x0, 0x0, 0x1747e00, 0xc42100e360, 0x7fffffff, 0x173a001, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc42100c3f0, 0x1747e00, 0xc42100e360, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchServer).Recv(0xc4208692d0, 0xc420f1e7e0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:319 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1.1(0x21fbfa0, 0xc4208692d0, 0xc4201080f0, 0xc4202f2f88, 0xc4202f2f90)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:291 +0x45
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:314 +0x45
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421238840)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15878 [chan receive]:
github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open.func1(0xc420324c60)
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:390 +0x44
created by github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:391 +0x6eb

goroutine 15844 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).raftTickLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2834 +0x334
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420f18700)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15975 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c40a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15877 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc4204b0c00, 0xc420c344b0, 0xc420694000)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 15842 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eee0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15840 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ee80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15973 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4060)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15822 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ec40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15691 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch(0xc420ebf720, 0x21fbfa0, 0xc420da6120, 0xc42094d4a8, 0x20)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:320 +0x1b0
github.com/cockroachdb/cockroach/storage._MultiRaft_RaftMessageBatch_Handler(0x176c840, 0xc420ebf720, 0x21f8a00, 0xc420cc4120, 0x635bf5, 0x40)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:300 +0xbb
google.golang.org/grpc.(*Server).processStreamingRPC(0xc4207aab40, 0x21fc240, 0xc420cc4990, 0xc420cd20f0, 0xc421021b90, 0x21d2c80, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:689 +0x702
google.golang.org/grpc.(*Server).handleStream(0xc4207aab40, 0x21fc240, 0xc420cc4990, 0xc420cd20f0, 0x0)
    /go/src/google.golang.org/grpc/server.go:773 +0xc36
google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc420873350, 0xc4207aab40, 0x21fc240, 0xc420cc4990, 0xc420cd20f0)
    /go/src/google.golang.org/grpc/server.go:422 +0xab
created by google.golang.org/grpc.(*Server).serveStreams.func1
    /go/src/google.golang.org/grpc/server.go:423 +0xa3

goroutine 16101 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0020)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15959 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dea0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15879 [select]:
github.com/cockroachdb/cockroach/storage.(*StorePool).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store_pool.go:346 +0x3db
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030d6c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15888 [select]:
github.com/cockroachdb/cockroach/rpc.(*Context).runHeartbeat(0xc42113a600, 0xc4212d5b00, 0xc420875000, 0xf, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:301 +0x650
github.com/cockroachdb/cockroach/rpc.(*Context).GRPCDial.func1.1.1()
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:221 +0x69
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420b27290)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16053 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue(0xc4212861e0, 0x7f2b00000003, 0xc420c4c360, 0xc420ff35c0, 0x21fd1a0, 0xc4208756f0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:477 +0x65f
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess.func1(0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:424 +0x39e
github.com/rubyist/circuitbreaker.(*Breaker).Call(0xc420fd5e60, 0xc420ff3640, 0x0, 0xc420763138, 0xc420763130)
    /go/src/github.com/rubyist/circuitbreaker/circuitbreaker.go:339 +0x6b
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess(0xc4212861e0, 0xc400000003, 0xc420c4c360, 0xc420ff35c0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:425 +0x138
github.com/cockroachdb/cockroach/storage.(*RaftTransport).SendAsync.func2.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:558 +0x4c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc4208905d0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15983 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c41c0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16005 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420746640)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15980 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4140)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16113 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a01e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15729 [select]:
github.com/cockroachdb/cockroach/rpc.(*Context).runHeartbeat(0xc42113a600, 0xc420320f00, 0xc420872ad0, 0xf, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:301 +0x650
github.com/cockroachdb/cockroach/rpc.(*Context).GRPCDial.func1.1.1()
    /go/src/github.com/cockroachdb/cockroach/rpc/context.go:221 +0x69
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42081f980)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15961 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030dee0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16124 [select]:
github.com/cockroachdb/cockroach/storage.(*Store).raftTickLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store.go:2834 +0x334
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420cb5630)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15727 [select]:
google.golang.org/grpc/transport.(*http2Client).controller(0xc420321000)
    /go/src/google.golang.org/grpc/transport/http2_client.go:999 +0x59d
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:233 +0xe78

goroutine 15807 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80ff0, 0x72, 0x6)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420763790, 0x72, 0xc4200478e8, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420763790, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc420763730, 0xc420b38000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc42012a228, 0xc420b38000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc421017b60)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc421017b60, 0xc420580638, 0x9, 0x9, 0x1971b49, 0x1971b48, 0xc420c4c778)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc421017b60, 0xc420580638, 0x9, 0x9, 0x9, 0xc420047af8, 0x645760, 0xc420d76740)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc421017b60, 0xc420580638, 0x9, 0x9, 0xd428c2, 0xc4202c5bc4, 0xc420047b60)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc420580638, 0x9, 0x9, 0x21e22e0, 0xc421017b60, 0x0, 0xc400000000, 0xc420047c90, 0xd5048c)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc420580600, 0x39, 0x39, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc421020c30, 0xc42086cff0, 0xc42086cff0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420193b90, 0xc421020cc0)
    /go/src/google.golang.org/grpc/transport/http2_server.go:260 +0x200
google.golang.org/grpc.(*Server).serveStreams(0xc4200aa960, 0x21fc240, 0xc420193b90)
    /go/src/google.golang.org/grpc/server.go:424 +0x160
google.golang.org/grpc.(*Server).serveNewHTTP2Transport(0xc4200aa960, 0x21fd320, 0xc42012a228, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:411 +0x3da
google.golang.org/grpc.(*Server).handleRawConn(0xc4200aa960, 0x21fd320, 0xc42012a228)
    /go/src/google.golang.org/grpc/server.go:388 +0x470
created by google.golang.org/grpc.(*Server).Serve
    /go/src/google.golang.org/grpc/server.go:357 +0x1a9

goroutine 16079 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc42100ff40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15820 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ec00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15870 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e522a0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15728 [select]:
google.golang.org/grpc.(*addrConn).transportMonitor(0xc42055a8c0)
    /go/src/google.golang.org/grpc/clientconn.go:720 +0x63e
created by google.golang.org/grpc.(*ClientConn).resetAddrConn
    /go/src/google.golang.org/grpc/clientconn.go:467 +0x6e2

goroutine 16116 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0240)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15677 [select]:
google.golang.org/grpc/transport.(*http2Client).controller(0xc4204b0c00)
    /go/src/google.golang.org/grpc/transport/http2_client.go:999 +0x59d
created by google.golang.org/grpc/transport.newHTTP2Client
    /go/src/google.golang.org/grpc/transport/http2_client.go:233 +0xe78

goroutine 15832 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ed80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15852 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80e70, 0x72, 0x9)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420cb6b50, 0x72, 0xc42004b8e8, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420cb6b50, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).Read(0xc420cb6af0, 0xc420aa2000, 0x8000, 0x8000, 0x0, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_unix.go:243 +0x1a1
net.(*conn).Read(0xc42013c198, 0xc420aa2000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:173 +0x70
bufio.(*Reader).fill(0xc42074b500)
    /usr/local/go/src/bufio/bufio.go:97 +0x10c
bufio.(*Reader).Read(0xc42074b500, 0xc4212ac638, 0x9, 0x9, 0x1971b49, 0x1971b48, 0xc4206be178)
    /usr/local/go/src/bufio/bufio.go:209 +0x1bc
io.ReadAtLeast(0x21e22e0, 0xc42074b500, 0xc4212ac638, 0x9, 0x9, 0x9, 0xc42004baf8, 0x645760, 0xc421014940)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e22e0, 0xc42074b500, 0xc4212ac638, 0x9, 0x9, 0xd428c2, 0xc4201d0004, 0xc42004bb60)
    /usr/local/go/src/io/io.go:325 +0x58
golang.org/x/net/http2.readFrameHeader(0xc4212ac638, 0x9, 0x9, 0x21e22e0, 0xc42074b500, 0x0, 0xc400000000, 0xc42004bc90, 0xd5048c)
    /go/src/golang.org/x/net/http2/frame.go:237 +0x7b
golang.org/x/net/http2.(*Framer).ReadFrame(0xc4212ac600, 0x127, 0x127, 0x0, 0x0)
    /go/src/golang.org/x/net/http2/frame.go:464 +0xa4
google.golang.org/grpc/transport.(*framer).readFrame(0xc420eb7650, 0xc420728660, 0xc420728660, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/http_util.go:505 +0x2f
google.golang.org/grpc/transport.(*http2Server).HandleStreams(0xc420490240, 0xc420eb7710)
    /go/src/google.golang.org/grpc/transport/http2_server.go:260 +0x200
google.golang.org/grpc.(*Server).serveStreams(0xc42053c000, 0x21fc240, 0xc420490240)
    /go/src/google.golang.org/grpc/server.go:424 +0x160
google.golang.org/grpc.(*Server).serveNewHTTP2Transport(0xc42053c000, 0x21fd320, 0xc42013c198, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:411 +0x3da
google.golang.org/grpc.(*Server).handleRawConn(0xc42053c000, 0x21fd320, 0xc42013c198)
    /go/src/google.golang.org/grpc/server.go:388 +0x470
created by google.golang.org/grpc.(*Server).Serve
    /go/src/google.golang.org/grpc/server.go:357 +0x1a9

goroutine 15867 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52240)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15966 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc42030df80)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15836 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ee00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15804 [IO wait]:
net.runtime_pollWait(0x7f2b5bd80c30, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc420763560, 0x72, 0xc420cf8df0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc420763560, 0x21e9ea0, 0xc4200100b8)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).accept(0xc420763500, 0x0, 0x21e71e0, 0xc42113d860)
    /usr/local/go/src/net/fd_unix.go:419 +0x238
net.(*TCPListener).accept(0xc42012a220, 0x624eee, 0xc420cf8ea0, 0xa586e9)
    /usr/local/go/src/net/tcpsock_posix.go:132 +0x2e
net.(*TCPListener).Accept(0xc42012a220, 0x19787c0, 0xc4200aa960, 0x21fd320, 0xc42012a228)
    /usr/local/go/src/net/tcpsock.go:222 +0x49
google.golang.org/grpc.(*Server).Serve(0xc4200aa960, 0x21f49a0, 0xc42012a220, 0x0, 0x0)
    /go/src/google.golang.org/grpc/server.go:348 +0x15a
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func2()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:58 +0x3c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42113d780)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15866 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52220)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15801 [select]:
github.com/cockroachdb/cockroach/storage.(*StorePool).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/store_pool.go:346 +0x3db
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42113ca00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16006 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420746660)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16107 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a00e0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15826 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ecc0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15825 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100eca0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15827 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ece0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15828 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ed00)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15838 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ee40)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15710 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420980400)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15713 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420980460)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15829 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420763110, 0xc420193680)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100ed20)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16041 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc4207c2900, 0xc4205c3710, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc420c340f0, 0xc4205c3710, 0x5, 0x5, 0x8e41e2, 0x57f0922d, 0xc415cbe2e5)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc420c340f0, 0xc4205c3710, 0x5, 0x5, 0x5, 0xecf82892d, 0xc415cbd891, 0x2525340)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc420c340f0, 0xc4205c3710, 0x5, 0x5, 0x8, 0x2527120, 0xc42046bd40)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc4205c3700, 0x7fffffff, 0x34, 0x18, 0x1971b31, 0x1971b30, 0xc41ffeb0b3, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc4205c3700, 0x21f56e0, 0x2573cb0, 0xc420c340f0, 0x0, 0x0, 0x1747e00, 0xc42029e960, 0x7fffffff, 0xc420e0c401, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc420192090, 0x1747e00, 0xc42029e960, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchServer).Recv(0xc420e0c430, 0x7f2b5e6f1240, 0xc421021710, 0xc4200aca00)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:319 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1.1(0x21fbfa0, 0xc420e0c430, 0xc4212861e0, 0xc42056bf88, 0xc42056bf90)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:291 +0x45
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:314 +0x45
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421021740)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15712 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc420980440)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16032 [select]:
github.com/cockroachdb/cockroach/storage.(*RaftTransport).processQueue(0xc4201080f0, 0xc400000001, 0xc42074b680, 0xc420ef1380, 0x21fd1a0, 0xc420869550, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:477 +0x65f
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess.func1(0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:424 +0x39e
github.com/rubyist/circuitbreaker.(*Breaker).Call(0xc42100c5a0, 0xc420ef1600, 0x0, 0xc420a6d2f8, 0xc420a6d2f0)
    /go/src/github.com/rubyist/circuitbreaker/circuitbreaker.go:339 +0x6b
github.com/cockroachdb/cockroach/storage.(*RaftTransport).connectAndProcess(0xc4201080f0, 0xc400000001, 0xc42074b680, 0xc420ef1380)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:425 +0x138
github.com/cockroachdb/cockroach/storage.(*RaftTransport).SendAsync.func2.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:558 +0x4c
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc421238ba0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15722 [chan receive]:
github.com/cockroachdb/cockroach/util/netutil.ListenAndServeGRPC.func1()
    /go/src/github.com/cockroachdb/cockroach/util/netutil/net.go:51 +0x6f
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc42081f5f0)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16057 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420ff3880, 0xc4202c5c70, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc4203f8870, 0xc4202c5c70, 0x5, 0x5, 0x8e41e2, 0x57f0922d, 0xc416a098fe)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc4203f8870, 0xc4202c5c70, 0x5, 0x5, 0x5, 0xecf82892d, 0xc416a08e55, 0x2525340)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc4203f8870, 0xc4202c5c70, 0x5, 0x5, 0x8, 0xc42003a800, 0xc420e47380)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc4202c5c60, 0x7fffffff, 0x34, 0x18, 0x1971b31, 0x1971b30, 0xc41ffb52a0, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc4202c5c60, 0x21f56e0, 0x2573cb0, 0xc4203f8870, 0x0, 0x0, 0x1747e00, 0xc42095abc0, 0x7fffffff, 0xc420875701, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc4211b4e10, 0x1747e00, 0xc42095abc0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/storage.(*multiRaftRaftMessageBatchServer).Recv(0xc420875780, 0x7f2b5e6f1240, 0xc4208908d0, 0xc420ee2780)
    /go/src/github.com/cockroachdb/cockroach/storage/raft.pb.go:319 +0x62
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1.1(0x21fbfa0, 0xc420875780, 0xc4212861e0, 0xc420514788, 0xc420514790)
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:291 +0x45
github.com/cockroachdb/cockroach/storage.(*RaftTransport).RaftMessageBatch.func1.1()
    /go/src/github.com/cockroachdb/cockroach/storage/raft_transport.go:314 +0x45
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420890900)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15855 [select]:
google.golang.org/grpc/transport.(*recvBufferReader).Read(0xc420e48300, 0xc42100f310, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/google.golang.org/grpc/transport/transport.go:141 +0x69a
google.golang.org/grpc/transport.(*Stream).Read(0xc4200ea0f0, 0xc42100f310, 0x5, 0x5, 0xc4208a7918, 0x63126b, 0x30)
    /go/src/google.golang.org/grpc/transport/transport.go:314 +0x59
io.ReadAtLeast(0x21e62e0, 0xc4200ea0f0, 0xc42100f310, 0x5, 0x5, 0x5, 0xc420f18b50, 0x0, 0xc420eb7e00)
    /usr/local/go/src/io/io.go:307 +0xa4
io.ReadFull(0x21e62e0, 0xc4200ea0f0, 0xc42100f310, 0x5, 0x5, 0xc400000001, 0x0, 0x5ff4d9)
    /usr/local/go/src/io/io.go:325 +0x58
google.golang.org/grpc.(*parser).recvMsg(0xc42100f300, 0x7fffffff, 0x0, 0x38, 0x1971b8c, 0x1971b8b, 0xc41ff8dbbb, 0x0)
    /go/src/google.golang.org/grpc/rpc_util.go:231 +0x6f
google.golang.org/grpc.recv(0xc42100f300, 0x21f56e0, 0x2573cb0, 0xc4200ea0f0, 0x0, 0x0, 0x1751c00, 0xc420e48840, 0x7fffffff, 0x20001, ...)
    /go/src/google.golang.org/grpc/rpc_util.go:315 +0x4d
google.golang.org/grpc.(*serverStream).RecvMsg(0xc4204902d0, 0x1751c00, 0xc420e48840, 0x0, 0x0)
    /go/src/google.golang.org/grpc/stream.go:492 +0xec
github.com/cockroachdb/cockroach/gossip.(*gossipGossipServer).Recv(0xc420f18a30, 0x0, 0x0, 0x1000000010000)
    /go/src/github.com/cockroachdb/cockroach/gossip/gossip.pb.go:228 +0x62
github.com/cockroachdb/cockroach/gossip.(Gossip_GossipServer).Recv-fm(0xc421018018, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:143 +0x2f
github.com/cockroachdb/cockroach/gossip.(*server).gossipReceiver(0xc421018000, 0xc42013c1c0, 0xc420e48640, 0xc4208a7f50, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:310 +0x63a
github.com/cockroachdb/cockroach/gossip.(*server).Gossip.func3.1()
    /go/src/github.com/cockroachdb/cockroach/gossip/server.go:143 +0x87
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193560, 0xc420e48680)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16120 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420d40230, 0xc42100d170)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc4205a0320)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15811 [select]:
github.com/cockroachdb/cockroach/storage.(*bookie).start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/reservation.go:274 +0x217
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193680, 0xc42100e160)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15986 [select]:
github.com/cockroachdb/cockroach/storage.(*raftScheduler).worker(0xc420a91340, 0xc420193ef0)
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:168 +0x3e7
github.com/cockroachdb/cockroach/storage.(*raftScheduler).Start.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/scheduler.go:160 +0x33
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc4202c4480)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 16068 [select]:
google.golang.org/grpc.NewClientStream.func2(0x21fc1e0, 0xc4204b0c00, 0xc42127b860, 0xc420867b00)
    /go/src/google.golang.org/grpc/stream.go:197 +0x426
created by google.golang.org/grpc.NewClientStream
    /go/src/google.golang.org/grpc/stream.go:217 +0xb5f

goroutine 16011 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc420193ef0, 0xc420746920)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15872 [select]:
github.com/cockroachdb/cockroach/storage.(*baseQueue).processLoop.func1()
    /go/src/github.com/cockroachdb/cockroach/storage/queue.go:441 +0x2cc
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker.func1(0xc42100d170, 0xc420e52320)
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:188 +0x7d
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunWorker
    /go/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:189 +0x66

goroutine 15719 [chan receive]:
github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open.func1(0xc4208ec480)
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:390 +0x44
created by github.com/cockroachdb/cockroach/storage/engine.(*RocksDB).Open
    /go/src/github.com/cockroachdb/cockroach/storage/engine/rocksdb.go:391 +0x6eb

ERROR: exit status 2

Run Details:

0 runs so far, 0 failures, over 5s
0 runs so far, 0 failures, over 10s
0 runs so far, 0 failures, over 15s
0 runs so far, 0 failures, over 20s
4 runs so far, 0 failures, over 25s
16 runs so far, 0 failures, over 30s
16 runs so far, 0 failures, over 35s
16 runs so far, 0 failures, over 40s
16 runs so far, 0 failures, over 45s
23 runs so far, 0 failures, over 50s
32 runs so far, 0 failures, over 55s
32 runs so far, 0 failures, over 1m0s
32 runs so far, 0 failures, over 1m5s
32 runs so far, 0 failures, over 1m10s
40 runs so far, 0 failures, over 1m15s
48 runs so far, 0 failures, over 1m20s
48 runs so far, 0 failures, over 1m25s
48 runs so far, 0 failures, over 1m30s
53 runs so far, 0 failures, over 1m35s
62 runs so far, 0 failures, over 1m40s
64 runs so far, 0 failures, over 1m45s
64 runs so far, 0 failures, over 1m50s
64 runs so far, 0 failures, over 1m55s
69 runs so far, 0 failures, over 2m0s
80 runs so far, 0 failures, over 2m5s
80 runs so far, 0 failures, over 2m10s
80 runs so far, 0 failures, over 2m15s
83 runs so far, 0 failures, over 2m20s
90 runs so far, 0 failures, over 2m25s
96 runs so far, 0 failures, over 2m30s
96 runs so far, 0 failures, over 2m35s
96 runs so far, 0 failures, over 2m40s
100 runs so far, 0 failures, over 2m45s
109 runs so far, 0 failures, over 2m50s
112 runs so far, 0 failures, over 2m55s
112 runs so far, 0 failures, over 3m0s
115 runs so far, 0 failures, over 3m5s
120 runs so far, 0 failures, over 3m10s
127 runs so far, 0 failures, over 3m15s
128 runs so far, 0 failures, over 3m20s
129 runs so far, 0 failures, over 3m25s
131 runs so far, 0 failures, over 3m30s
140 runs so far, 0 failures, over 3m35s
144 runs so far, 0 failures, over 3m40s
144 runs so far, 0 failures, over 3m45s
145 runs so far, 0 failures, over 3m50s
150 runs so far, 0 failures, over 3m55s
159 runs so far, 0 failures, over 4m0s
160 runs so far, 0 failures, over 4m5s
160 runs so far, 0 failures, over 4m10s
163 runs so far, 0 failures, over 4m15s
168 runs so far, 0 failures, over 4m20s
176 runs so far, 0 failures, over 4m25s
176 runs so far, 0 failures, over 4m30s
177 runs so far, 0 failures, over 4m35s
182 runs so far, 0 failures, over 4m40s
188 runs so far, 0 failures, over 4m45s
192 runs so far, 0 failures, over 4m50s
192 runs so far, 0 failures, over 4m55s
195 runs so far, 0 failures, over 5m0s
199 runs so far, 0 failures, over 5m5s
206 runs so far, 0 failures, over 5m10s
208 runs so far, 0 failures, over 5m15s
209 runs so far, 0 failures, over 5m20s
215 runs so far, 0 failures, over 5m25s
218 runs so far, 0 failures, over 5m30s
224 runs so far, 0 failures, over 5m35s
224 runs so far, 0 failures, over 5m40s
226 runs so far, 0 failures, over 5m45s
233 runs so far, 0 failures, over 5m50s
236 runs so far, 0 failures, over 5m55s
240 runs so far, 0 failures, over 6m0s
242 runs so far, 0 failures, over 6m5s
244 runs so far, 0 failures, over 6m10s
250 runs so far, 0 failures, over 6m15s
255 runs so far, 0 failures, over 6m20s
256 runs so far, 0 failures, over 6m25s
258 runs so far, 0 failures, over 6m30s
263 runs so far, 0 failures, over 6m35s
266 runs so far, 0 failures, over 6m40s
272 runs so far, 0 failures, over 6m45s
274 runs so far, 0 failures, over 6m50s
277 runs so far, 0 failures, over 6m55s
281 runs so far, 0 failures, over 7m0s
286 runs so far, 0 failures, over 7m5s
288 runs so far, 0 failures, over 7m10s
290 runs so far, 0 failures, over 7m15s
297 runs so far, 0 failures, over 7m20s
299 runs so far, 0 failures, over 7m25s
303 runs so far, 0 failures, over 7m30s
306 runs so far, 0 failures, over 7m35s
307 runs so far, 0 failures, over 7m40s
314 runs so far, 0 failures, over 7m45s
316 runs so far, 0 failures, over 7m50s
319 runs so far, 0 failures, over 7m55s
321 runs so far, 0 failures, over 8m0s
326 runs so far, 0 failures, over 8m5s
331 runs so far, 0 failures, over 8m10s
335 runs so far, 0 failures, over 8m15s
336 runs so far, 0 failures, over 8m20s
340 runs so far, 0 failures, over 8m25s
345 runs so far, 0 failures, over 8m30s
348 runs so far, 0 failures, over 8m35s
352 runs so far, 0 failures, over 8m40s
353 runs so far, 0 failures, over 8m45s
358 runs so far, 0 failures, over 8m50s
364 runs so far, 0 failures, over 8m55s
366 runs so far, 0 failures, over 9m0s
368 runs so far, 0 failures, over 9m5s
373 runs so far, 0 failures, over 9m10s
375 runs so far, 0 failures, over 9m15s
380 runs so far, 0 failures, over 9m20s
384 runs so far, 0 failures, over 9m25s
385 runs so far, 0 failures, over 9m30s
389 runs so far, 0 failures, over 9m35s
395 runs so far, 0 failures, over 9m40s
399 runs so far, 0 failures, over 9m45s
400 runs so far, 0 failures, over 9m50s
405 runs so far, 0 failures, over 9m55s
406 runs so far, 0 failures, over 10m0s
412 runs so far, 0 failures, over 10m5s
416 runs so far, 0 failures, over 10m10s
417 runs so far, 0 failures, over 10m15s
421 runs so far, 0 failures, over 10m20s
426 runs so far, 0 failures, over 10m25s
430 runs so far, 0 failures, over 10m30s
431 runs so far, 0 failures, over 10m35s
437 runs so far, 0 failures, over 10m40s
438 runs so far, 0 failures, over 10m45s
444 runs so far, 0 failures, over 10m50s
447 runs so far, 0 failures, over 10m55s
448 runs so far, 0 failures, over 11m0s
452 runs so far, 0 failures, over 11m5s
455 runs so far, 0 failures, over 11m10s
461 runs so far, 0 failures, over 11m15s
463 runs so far, 0 failures, over 11m20s
467 runs so far, 0 failures, over 11m25s
471 runs so far, 0 failures, over 11m30s
475 runs so far, 0 failures, over 11m35s
478 runs so far, 0 failures, over 11m40s
479 runs so far, 0 failures, over 11m45s
484 runs so far, 0 failures, over 11m50s
488 runs so far, 0 failures, over 11m55s
492 runs so far, 0 failures, over 12m0s
495 runs so far, 0 failures, over 12m5s
499 runs so far, 0 failures, over 12m10s
503 runs so far, 0 failures, over 12m15s
508 runs so far, 0 failures, over 12m20s
509 runs completed, 1 failures, over 12m22s
FAIL

Please assign, take a look and update the issue accordingly.

tamird commented 8 years ago

This one is pretty scary and reproduces very easily in GCE with:

make stress STRESSFLAGS='-p 100 -stderr -maxfails 1' PKG=./storage TESTS=TestReplicateRestartAfterTruncationWithRemoveAndReAdd
611 runs so far, 0 failures, over 5s
1167 runs so far, 0 failures, over 10s
1699 runs so far, 0 failures, over 15s

I161004 19:52:15.537426 1 rand.go:76  Random seed: -5025832341681872018
I161004 19:52:15.609866 25 storage/engine/rocksdb.go:360  opening in memory rocksdb instance
I161004 19:52:15.611986 25 gossip/gossip.go:234  initial resolvers: []
W161004 19:52:15.612017 25 gossip/gossip.go:1045  no resolvers found; use --join to specify a connected node
I161004 19:52:15.612102 25 gossip/gossip.go:268  NodeID set to 1
I161004 19:52:15.620763 25 gossip/gossip.go:268  NodeID set to 1
I161004 19:52:15.622814 25 storage/store.go:1040  [n1,s1]: failed initial metrics computation: [n1,s1]: system config not yet available
I161004 19:52:15.622997 25 gossip/gossip.go:282  NodeDescriptor set to node_id:1 address:<network_field:"tcp" address_field:"127.0.0.1:45150" > attrs:<>
I161004 19:52:15.625251 101 storage/replica_trigger.go:252  [s1,r1:/M{in-ax}] new range lease replica {1 1 1} 1970-01-01 00:00:00 +0000 UTC 900ms following replica {0 0 0} 1970-01-01 00:00:00 +0000 UTC 0s [physicalTime=1970-01-01 00:00:00 +0000 UTC]
I161004 19:52:15.625903 25 storage/engine/rocksdb.go:360  opening in memory rocksdb instance
I161004 19:52:15.626877 25 gossip/gossip.go:234  initial resolvers: [127.0.0.1:45150]
W161004 19:52:15.626922 25 gossip/gossip.go:1047  no incoming or outgoing connections
I161004 19:52:15.626989 25 gossip/gossip.go:268  NodeID set to 2
I161004 19:52:15.627852 25 gossip/gossip.go:268  NodeID set to 2
I161004 19:52:15.628093 25 storage/store.go:1040  [n2,s2]: failed initial metrics computation: [n2,s2]: system config not yet available
I161004 19:52:15.628145 25 gossip/gossip.go:282  NodeDescriptor set to node_id:2 address:<network_field:"tcp" address_field:"127.0.0.1:34704" > attrs:<>
I161004 19:52:15.773880 25 storage/engine/rocksdb.go:360  opening in memory rocksdb instance
I161004 19:52:15.774910 25 gossip/gossip.go:234  initial resolvers: [127.0.0.1:45150]
W161004 19:52:15.797089 25 gossip/gossip.go:1047  no incoming or outgoing connections
I161004 19:52:15.797149 25 gossip/gossip.go:268  NodeID set to 3
I161004 19:52:15.798368 25 gossip/gossip.go:268  NodeID set to 3
I161004 19:52:15.798687 25 storage/store.go:1040  [n3,s3]: failed initial metrics computation: [n3,s3]: system config not yet available
I161004 19:52:15.798739 25 gossip/gossip.go:282  NodeDescriptor set to node_id:3 address:<network_field:"tcp" address_field:"127.0.0.1:45056" > attrs:<>
I161004 19:52:15.798945 56 gossip/client.go:125  node 2: started gossip client to 127.0.0.1:45150
I161004 19:52:15.799759 267 gossip/client.go:125  node 3: started gossip client to 127.0.0.1:45150
I161004 19:52:15.802885 25 storage/replica_raftstorage.go:443  [s1,r1:/M{in-ax}] generated snapshot a424e808 for range 1 at index 12 in 63.962µs.
I161004 19:52:15.810006 25 storage/store.go:2747  streamed snapshot: kv pairs: 31, log entries: 2
I161004 19:52:15.814200 86 storage/replica_raftstorage.go:573  [s2] [n2,s2,r1:{-}]: with replicaID [?], applying preemptive snapshot at index 12 (id=a424e808, encoded size=16, 1 rocksdb batches, 2 log entries)
I161004 19:52:15.814911 86 storage/replica_raftstorage.go:576  [s2] [n2,s2,r1:/M{in-ax}]: with replicaID [?], applied preemptive snapshot in 0.001s
I161004 19:52:15.821376 25 storage/replica_command.go:3236  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > next_replica_id:2
I161004 19:52:15.823488 434 storage/replica.go:1712  [s1,r1:/M{in-ax}] proposing ADD_REPLICA {NodeID:2 StoreID:2 ReplicaID:2} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:2 StoreID:2 ReplicaID:2}]
I161004 19:52:15.864750 87 storage/raft_transport.go:418  raft transport stream to node 1 established
I161004 19:52:15.865283 25 storage/replica_raftstorage.go:443  [s1,r1:/M{in-ax}] generated snapshot 73e739d1 for range 1 at index 14 in 164.209µs.
I161004 19:52:15.866326 25 storage/store.go:2747  streamed snapshot: kv pairs: 34, log entries: 4
I161004 19:52:15.866846 451 storage/replica_raftstorage.go:573  [s3] [n3,s3,r1:{-}]: with replicaID [?], applying preemptive snapshot at index 14 (id=73e739d1, encoded size=16, 1 rocksdb batches, 4 log entries)
I161004 19:52:15.868005 451 storage/replica_raftstorage.go:576  [s3] [n3,s3,r1:/M{in-ax}]: with replicaID [?], applied preemptive snapshot in 0.001s
I161004 19:52:15.874809 25 storage/replica_command.go:3236  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > replicas:<node_id:2 store_id:2 replica_id:2 > next_replica_id:3
I161004 19:52:15.903020 453 storage/replica.go:1712  [s1,r1:/M{in-ax}] proposing ADD_REPLICA {NodeID:3 StoreID:3 ReplicaID:3} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:2 StoreID:2 ReplicaID:2} {NodeID:3 StoreID:3 ReplicaID:3}]
I161004 19:52:15.924549 482 storage/raft_transport.go:418  raft transport stream to node 1 established
E161004 19:52:15.925325 25 storage/client_test.go:950  engine 1: missing key "a"
E161004 19:52:15.925368 25 storage/client_test.go:950  engine 2: missing key "a"
I161004 19:52:15.928355 25 util/stop/stopper.go:353  stop has been called, stopping or quiescing all running tasks
I161004 19:52:15.929785 25 storage/replica_command.go:3236  change replicas: read existing descriptor range_id:1 start_key:"" end_key:"\377\377" replicas:<node_id:1 store_id:1 replica_id:1 > replicas:<node_id:2 store_id:2 replica_id:2 > replicas:<node_id:3 store_id:3 replica_id:3 > next_replica_id:4
W161004 19:52:15.931219 410 storage/store.go:2636  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:247: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
W161004 19:52:15.931534 410 storage/store.go:2636  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:247: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
I161004 19:52:15.936671 488 storage/replica.go:1712  [s1,r1:/M{in-ax}] proposing REMOVE_REPLICA {NodeID:2 StoreID:2 ReplicaID:2} for range 1: [{NodeID:1 StoreID:1 ReplicaID:1} {NodeID:3 StoreID:3 ReplicaID:3}]
W161004 19:52:15.939282 410 storage/store.go:2636  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:247: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
W161004 19:52:15.939335 410 storage/store.go:2636  [s1] got error from range 1, replica {2 2 2}: storage/raft_transport.go:247: unable to accept Raft message from {NodeID:1 StoreID:1 ReplicaID:1}: no handler registered for {NodeID:2 StoreID:2 ReplicaID:2}
I161004 19:52:15.944480 25 gossip/gossip.go:268  NodeID set to 2
I161004 19:52:15.954336 25 storage/replica_raftstorage.go:443  [s1,r1:/M{in-ax}] generated snapshot a1061e88 for range 1 at index 22 in 54.207µs.
I161004 19:52:15.958691 25 storage/store.go:2747  streamed snapshot: kv pairs: 42, log entries: 3
I161004 19:52:15.958991 595 storage/replica_raftstorage.go:573  [s2] [n2,s2,r1:/M{in-ax}]: with replicaID 2, applying Raft snapshot at index 22 (id=a1061e88, encoded size=16, 1 rocksdb batches, 3 log entries)
E161004 19:52:15.971105 610 raft/raft.go:1091  [s2,r1:/M{in-ax}] 2 state.commit 22 is out of range [10, 17]
panic: 2 state.commit 22 is out of range [10, 17] [recovered]
    panic: 2 state.commit 22 is out of range [10, 17]

goroutine 610 [running]:
panic(0x1615840, 0xc420d0cb70)
    /home/tamird/go/src/runtime/panic.go:500 +0x1a1
github.com/cockroachdb/cockroach/util/stop.(*Stopper).Recover(0xc4205c2630)
    /home/tamird/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:180 +0x6e
panic(0x1615840, 0xc420d0cb70)
    /home/tamird/go/src/runtime/panic.go:458 +0x243
github.com/cockroachdb/cockroach/storage.(*raftLogger).Panicf(0xc420d860e0, 0x180283d, 0x2b, 0xc420cfab00, 0x4, 0x4)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/raft.go:111 +0x107
github.com/coreos/etcd/raft.(*raft).loadState(0xc420346b40, 0x6, 0x0, 0x16, 0x0, 0x0, 0x0)
    /home/tamird/src/github.com/coreos/etcd/raft/raft.go:1091 +0x1db
github.com/coreos/etcd/raft.newRaft(0xc420de1498, 0x40)
    /home/tamird/src/github.com/coreos/etcd/raft/raft.go:289 +0xc9b
github.com/coreos/etcd/raft.NewRawNode(0xc420de1498, 0x0, 0x0, 0x0, 0xc420d90000, 0x16, 0x0)
    /home/tamird/src/github.com/coreos/etcd/raft/rawnode.go:79 +0x71
github.com/cockroachdb/cockroach/storage.(*Replica).withRaftGroupLocked(0xc42009e700, 0x0, 0xc420de17e0, 0x0, 0x0)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:414 +0x28a
github.com/cockroachdb/cockroach/storage.defaultProposeRaftCommandLocked(0xc42009e700, 0xc420dae000, 0x0, 0x0)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:1747 +0x1ed
github.com/cockroachdb/cockroach/storage.(*Replica).proposePendingCmdLocked(0xc42009e700, 0xc420dae000, 0xc420d920c0, 0xc420d860c0)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:1686 +0x77
github.com/cockroachdb/cockroach/storage.(*Replica).proposeRaftCommand(0xc42009e700, 0x7f961d71c000, 0xc420d920c0, 0x311cdad160001, 0xe, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:1665 +0x1f6
github.com/cockroachdb/cockroach/storage.(*Replica).addWriteCmd(0xc42009e700, 0x7f961d71c000, 0xc420d920c0, 0x311cdad160001, 0xe, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:1551 +0x17a
github.com/cockroachdb/cockroach/storage.(*Replica).Send(0xc42009e700, 0x7f961d71c000, 0xc420d920c0, 0x311cdad160001, 0xe, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica.go:1075 +0x277
github.com/cockroachdb/cockroach/storage.(*pendingLeaseRequest).InitOrJoinRequest.func1(0x7f961d71c000, 0xc420b95f50)
    /home/tamird/src/github.com/cockroachdb/cockroach/storage/replica_range_lease.go:127 +0x174
github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask.func1(0xc4205c2630, 0x1f100b8, 0x1e, 0x91, 0x19866d8, 0xc420d92000, 0x7f961d71c000, 0xc420b95f50)
    /home/tamird/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:239 +0xc6
created by github.com/cockroachdb/cockroach/util/stop.(*Stopper).RunAsyncTask
    /home/tamird/src/github.com/cockroachdb/cockroach/util/stop/stopper.go:240 +0x227

ERROR: exit status 2

2146 runs completed, 1 failures, over 19s
FAIL
Makefile:146: recipe for target 'stress' failed
make: *** [stress] Error 1

Assigning @petermattis as the newest raft whisperer.

petermattis commented 8 years ago

Can you try to reproduce on top of my RocksDB 4.11.2 PR? This is exactly the error we were seeing on RocksDB 4.9.

tamird commented 8 years ago

Reproduces just as easily on 43e2a73764c82285850efcbe30f2b5793288a889.

petermattis commented 8 years ago

Thanks. Might be a locking issue then. Fun.

petermattis commented 8 years ago

I reproduced this on my laptop, though it took a few minutes. Exact same error message. Time to turn on some additional logging.

petermattis commented 8 years ago

Turning on some additional logging I see:

I161004 19:19:39.996002 8 storage/replica_raftstorage.go:443  [s1,r1:/M{in-ax}] generated snapshot 1735fb5a for range 1 at index 22 in 40.266µs.
I161004 19:19:39.996509 8 storage/store.go:2735  streamed snapshot: kv pairs: 42, log entries: 3
I161004 19:19:39.996638 278 raft/raft.go:542  [s2,r1:/M{in-ax}] ffffffffffffffff became follower at term 6
I161004 19:19:39.996737 278 raft/raft.go:302  [s2,r1:/M{in-ax}] newRaft ffffffffffffffff [peers: [1,2,3], term: 6, commit: 17, applied: 17, lastindex: 17, lastterm: 6]
I161004 19:19:39.996764 278 raft/raft.go:1026  [s2,r1:/M{in-ax}] ffffffffffffffff [commit: 17, lastindex: 17, lastterm: 6] starts to restore snapshot [index: 22, term: 6]
I161004 19:19:39.996779 278 raft/log.go:288  [s2,r1:/M{in-ax}] log [committed=17, applied=17, unstable.offset=18, len(unstable.Entries)=0] starts to restore snapshot [index: 22, term: 6]
I161004 19:19:39.996798 278 raft/raft.go:1036  [s2,r1:/M{in-ax}] ffffffffffffffff restored progress of 1 [next = 23, match = 0, state = ProgressStateProbe, waiting = false, pendingSnapshot = 0]
I161004 19:19:39.996821 278 raft/raft.go:1036  [s2,r1:/M{in-ax}] ffffffffffffffff restored progress of 3 [next = 23, match = 0, state = ProgressStateProbe, waiting = false, pendingSnapshot = 0]
I161004 19:19:39.996836 278 raft/raft.go:1003  [s2,r1:/M{in-ax}] ffffffffffffffff [commit: 22] restored snapshot [index: 22, term: 6]
I161004 19:19:39.996855 278 storage/replica_raftstorage.go:573  [s2] [n2,s2,r1:/M{in-ax}]: with replicaID 2, applying Raft snapshot at index 22 (id=1735fb5a, encoded size=16, 1 rocksdb batches, 3 log entries)
E161004 19:19:39.997819 312 raft/raft.go:1091  [s2,r1:/M{in-ax}] 2 state.commit 22 is out of range [10, 17]

This is occurring when the range is being re-added to store 2. Before being removed, the range had committed up to log index 17. I'm mildly surprised that when the range is being re-added it sees the previous last index of 17. Could the range not have been cleaned up properly? We then apply the snapshot generated at commit index 22 and the merger of that snapshot with the previous raft state triggers an assertion.

petermattis commented 8 years ago

Hmm, that exact same set of log messages happens on successful runs too. So my theory is whack.

petermattis commented 8 years ago

Are we missing necessary locking of Replica.raftMu? Seems to me that Replica.withRaftGroupLocked can read raft state when calling raft.NewRawNode and there are various callers of withRaftGroupLocked that don't hold Replica.raftMu. In particular, Replica.Send -> Replica.addWriteCmd -> Replica.proposeRaftCommand.

petermattis commented 8 years ago
diff --git a/storage/replica.go b/storage/replica.go
index ae4fdb9..2baae8c 100644
--- a/storage/replica.go
+++ b/storage/replica.go
@@ -1650,6 +1650,8 @@ func makeIDKey() storagebase.CmdIDKey {
 func (r *Replica) proposeRaftCommand(
        ctx context.Context, ba roachpb.BatchRequest,
 ) (chan roachpb.ResponseWithError, func() bool, error) {
+       r.raftMu.Lock()
+       defer r.raftMu.Unlock()
        r.mu.Lock()
        defer r.mu.Unlock()
        if r.mu.destroyed != nil {
petermattis commented 8 years ago

Maybe the above isn't necessary. It's curious that we're trying to acquire the range lease on a replica that we're concurrently applying a snapshot to. What is trying to acquire a range lease when the replica is uninitialized?

petermattis commented 8 years ago

Ok, so the range isn't uninitialized. The test is unreplicating a range from a node, truncate the range log to ensure a snapshot, re-adding the range and expecting it to catch up. While the removed range is being re-added via a snapshot, I sometimes see a concurrent range lease request.

The range lease request results in the following code path: Replica.Send -> Replica.addWriteCmd -> Replica.proposeRaftCommand -> Replica.proposePendingCmdLocked -> defaultProposeRaftCommandLocked -> Replica.withRaftGroupLocked -> raft.NewRawNode.

The snapshot being applied is a "Raft" snapshot which means it is being applied via Replica.handleRaftReady. This goroutine holds Replica.raftMu. In Replica.applySnapshot we see the code:

    if err := batch.Commit(); err != nil {
        return err
    }
    log.Infof(r.ctx, "committed snapshot batch")

    r.mu.Lock()
    log.Infof(r.ctx, "updating state after snapshot")
    // We set the persisted last index to the last applied index. This is
    // not a correctness issue, but means that we may have just transferred
    // some entries we're about to re-request from the leader and overwrite.
    // However, raft.MultiNode currently expects this behaviour, and the
    // performance implications are not likely to be drastic. If our
    // feelings about this ever change, we can add a LastIndex field to
    // raftpb.SnapshotMetadata.
    r.mu.lastIndex = s.RaftAppliedIndex
    r.mu.raftLogSize = raftLogSize
    // Update the range and store stats.
    r.store.metrics.subtractMVCCStats(r.mu.state.Stats)
    r.store.metrics.addMVCCStats(s.Stats)
    r.mu.state = s
    r.assertStateLocked(r.store.Engine())
    r.mu.Unlock()

Notice that we commit the RocksDB batch and then update our in-memory state. Inside Replica.withRaftGroupLocked we create the new raft.RawNode:

        raftGroup, err := raft.NewRawNode(newRaftConfig(
            raft.Storage(r),
            uint64(r.mu.replicaID),
            r.mu.state.RaftAppliedIndex,
            r.store.cfg,
            &raftLogger{ctx: r.ctx},
        ), nil)

I added instrumentation that shows when the Raft assertion fires we've committed the RocksDB batch but not updated the in-memory state. So the on-disk "hard state" indicates we've committed up to index 22 but the in-memory state says our applied index is 17 which is invalid according to Raft. If we try to create a raft.RawNode at this point we go boom.

Grabbing Replica.raftMu in Replica.proposeRaftCommand fixes the issue. I think so would using the on-disk applied index when create the raft.RawNode.

I need to track down why the range lease is being requested on the node with the removed range. That would cause spurious elections since the Raft group is dormant on that node.

petermattis commented 8 years ago

We're trying to acquire the lease on the removed range due to the periodic gossiping of the first range descriptor.

petermattis commented 8 years ago

Using the on-disk applied index when creating a raft.RawNode doesn't fix the test. Haven't yet figured out why.

@tschottdorf I'd appreciate your eyeballs on this. The change I'm proposing is:

diff --git a/storage/replica.go b/storage/replica.go
index ae4fdb9..172b685 100644
--- a/storage/replica.go
+++ b/storage/replica.go
@@ -1650,6 +1650,10 @@ func makeIDKey() storagebase.CmdIDKey {
 func (r *Replica) proposeRaftCommand(
        ctx context.Context, ba roachpb.BatchRequest,
 ) (chan roachpb.ResponseWithError, func() bool, error) {
+       // We need to hold grab the raft mutex here in case the Raft group needs to
+       // be initialized.
+       r.raftMu.Lock()
+       defer r.raftMu.Unlock()
        r.mu.Lock()
        defer r.mu.Unlock()
        if r.mu.destroyed != nil {

As far as I can tell, this has always been a gap in our raft locking story.

tbg commented 8 years ago

That change is pretty bad concurrency-wise, right? Isn't it enough to acquire raftMu in withRaftGroupLocked in the branch in which we actually create the Raft group (or wherever, so that we always hold it when calling NewRawNode)? Agreed that this was always broken (at least since we're doing lazy init).

Using the on-disk applied index when creating a raft.RawNode doesn't fix the test. Haven't yet figured out why.

Sounds that that would still be racy if the Raft group is created before Commit as then its in-mem state doesn't match the on-disk state.

petermattis commented 8 years ago

That change is pretty bad concurrency-wise, right?

Well, it's not good, but I'm not seeing a significant perf impact to doing so.

Isn't it enough to acquire raftMu in withRaftGroupLocked in the branch in which we actually create the Raft group (or wherever, so that we always hold it when calling NewRawNode)?

Unfortunately we can't without violating our lock ordering: Replica.raftMu > Replica.mu and we already hold Replica.mu in withRaftGroupLocked.

Sounds that that would still be racy if the Raft group is created before Commit as then its in-mem state doesn't match the on-disk state.

Perhaps we could commit the snapshot batch while holding Replica.mu, though that changes Replica.mu to be held across a potentially long running operation.

petermattis commented 8 years ago

Perhaps we could commit the snapshot batch while holding Replica.mu, though that changes Replica.mu to be held across a potentially long running operation.

This seems to work:

diff --git a/storage/replica_raftstorage.go b/storage/replica_raftstorage.go
index 6e2435a..a624e30 100644
--- a/storage/replica_raftstorage.go
+++ b/storage/replica_raftstorage.go
@@ -652,11 +652,13 @@ func (r *Replica) applySnapshot(
                        r, s.RaftAppliedIndex, snap.Metadata.Index)
        }

+       r.mu.Lock()
+
        if err := batch.Commit(); err != nil {
+               r.mu.Unlock()
                return err
        }

-       r.mu.Lock()
        // We set the persisted last index to the last applied index. This is
        // not a correctness issue, but means that we may have just transferred
        // some entries we're about to re-request from the leader and overwrite.
tbg commented 8 years ago

Unfortunately we can't without violating our lock ordering: Replica.raftMu > Replica.mu and we already hold Replica.mu in withRaftGroupLocked.

Ah, that's awkward. I'm a bit skeptical that holding r.mu across the commit is a good idea seeing that we have various locations in which the store mutex is held while serially acquiring each Replica, but have no quarrel with it otherwise, though it's hopefully less disastrous (#9479) now that #9668 is in.

Seems nontrivial to get a good solution to this. In an ideal world creating the Raft group would always be done holding raftMu.

petermattis commented 8 years ago

I have to do an audit, but Replica.proposeRaftCommand might be the only call path where we can create a raft.RawNode without holding Replica.raftMu.

petermattis commented 8 years ago

Audit done. The only caller of Replica.withRaftGroupLocked that does not hold Replica.raftMu is Replica.proposeRaftCommand. Somewhat surprisingly, locking Replica.raftMu in Replica.proposeRaftCommand has almost no effect on performance. A 5min block_writer run showed 1% lower queries/sec.

We could get tricky here and only lock Replica.raftMu in proposeRaftCommand if Replica.mu.internalRaftGroup == nil. Given the very tiny effect on performance, I don't think this is worthwhile.

tbg commented 8 years ago

Sounds good, the only question I have is whether we can rearrange things so that we don't reintroduce that same problem. In other words, we would have to rename to withRaftGroupRaftMuLockedReplicaMuLocked and we must make sure that it is clear that calling withRaftGroup isn't allowed when holding either raftMu or mu, callers in which situation would have to use yet another wrapper that acquires the mutexes they don't already hold.

Do you see a better way (or are the existing callers amenable to the above)?

petermattis commented 8 years ago

Replica.withRaftGroup is often called with Replica.raftMu held. Replica.withRaftGroupRaftMuLockedReplicaMuLocked is a bit of a mouthful for me.

I've added commentary, but it does feel insufficient. I wonder if we should add a debug mutex variant that allows us to assert that the current goroutine holds the lock (using github.com/petermattis/goid).

tbg commented 8 years ago

You are thinking something like repl.mu.AssertHeld()? Yeah, that works for me. Could put that into the deadlock build tag. You were thinking something like the below, right?

// !deadlock
type Mutex sync.Mutex
func (mu *AssertableMutex) AssertHeld() {}

// deadlock
type Mutex struct {
  deadlock.Mutex
  heldBy atomic.Value // goroutineID as int
}

func (mu *Mutex) AssertHeld() {
  if myID, heldID := goid.ID(), mu.heldBy.Load().(int); heldID != myID {
    // boom
  }
}
// ...

That SGTM. I still wish we could make the conventions clear in our code to avoid relying on making that build that the primary way of informing developers that they didn't know what they were supposed to hold when they made the call.

petermattis commented 8 years ago

Yes, that was what I was thinking of.

bdarnell commented 8 years ago

Google's C++ Mutex.AssertHeld just checked whether the mutex was held by anyone, not necessarily the current thread. This was cheaper and allowed for some esoteric situations when you'd lock a mutex in one thread and rely on it in another thread. I don't think we'd need that flexibility now but before the current raft scheduler went in we had a similar situation with processRaftMu, so we might want to allow for this flexibility instead of using goid (and without goid, it's cheap enough that we could do it on the race build tag instead of deadlock)

petermattis commented 8 years ago

Filed #9913 to capture the AssertHeld idea. Closing this issue as TestReplicateRestartAfterTruncationWithRemoveAndReAdd has been deflaked.