Skip to content

Tick missed to fire if Ready() is taking a long time #9939

@manishrjain

Description

@manishrjain

In Dgraph, when we sometimes have to retrieve a snapshot, or if a server gets killed and rejoins the cluster, it takes a while to retrieve the snapshot, or replay the raft logs -- during this time, we get these warnings:

2018/07/19 20:57:18 node.go:400: WARN: A tick missed to fire. Node blocks too long!
2018/07/19 20:57:18 node.go:400: WARN: A tick missed to fire. Node blocks too long!
2018/07/19 20:57:18 node.go:400: WARN: A tick missed to fire. Node blocks too long!

Can we do something about them, and if so what can we do? Should we run ticks in a separate goroutine than Ready? Currently, we have them all in one select loop.

		case <-ticker.C:
			n.Raft().Tick()

		case rd := <-n.Raft().Ready():

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions