diff --git a/etcdserver/server.go b/etcdserver/server.go
index <HASH>..<HASH> 100644
--- a/etcdserver/server.go
+++ b/etcdserver/server.go
@@ -635,6 +635,9 @@ func (s *EtcdServer) run() {
 				setSyncC(nil)
 			} else {
 				setSyncC(s.SyncTicker)
+				if s.compactor != nil {
+					s.compactor.Resume()
+				}
 			}
 
 			// TODO: remove the nil checking
@@ -642,9 +645,6 @@ func (s *EtcdServer) run() {
 			if s.stats != nil {
 				s.stats.BecomeLeader()
 			}
-			if s.compactor != nil {
-				s.compactor.Resume()
-			}
 			if s.r.td != nil {
 				s.r.td.Reset()
 			}
etcdserver: resume compactor only if leader