diff --git a/lib/discovery/advertise_server.go b/lib/discovery/advertise_server.go
index 75e70b6..9e9a73a 100644
--- a/lib/discovery/advertise_server.go
+++ b/lib/discovery/advertise_server.go
@@ -37,6 +37,7 @@
 	curAddrs := sortedNames(status.Endpoints)
 	stop, err := advertiseServer(ctx, d, ad, curAddrs, suffix, visibility)
 	if err != nil {
+		stop()
 		return nil, err
 	}
 
@@ -49,6 +50,7 @@
 			case <-status.Dirty:
 				status = server.Status()
 				if status.State != rpc.ServerActive {
+					stop()
 					return
 				}
 				newAddrs := sortedNames(status.Endpoints)
@@ -59,6 +61,7 @@
 				stop() // Stop the previous advertisement.
 				stop, err = advertiseServer(ctx, d, ad, newAddrs, suffix, visibility)
 				if err != nil {
+					stop()
 					ctx.Error(err)
 					return
 				}
diff --git a/lib/discovery/directory.go b/lib/discovery/directory.go
index 399e36e..02e6ca8 100644
--- a/lib/discovery/directory.go
+++ b/lib/discovery/directory.go
@@ -102,6 +102,7 @@
 	s := &dirServer{d: d, adMap: make(map[discovery.AdId]*AdInfo), cancel: cancel}
 	ctx, server, err := v23.WithNewServer(ctx, "", DirectoryServer(s), security.AllowEveryone(), opts...)
 	if err != nil {
+		cancel()
 		return nil, err
 	}
 
diff --git a/lib/discovery/discovery_test.go b/lib/discovery/discovery_test.go
index fb32e5a..a6e2dca 100644
--- a/lib/discovery/discovery_test.go
+++ b/lib/discovery/discovery_test.go
@@ -196,10 +196,18 @@
 	}
 
 	d, _ := df.New(ctx)
-	if _, err := testutil.Advertise(ctx, d, nil, &ad); err != nil {
+	stop, err := testutil.Advertise(ctx, d, nil, &ad)
+	if stop != nil {
+		defer stop()
+	}
+	if err != nil {
 		t.Fatal(err)
 	}
-	if _, err := testutil.Advertise(ctx, d, nil, &ad); err == nil {
+	stop, err = testutil.Advertise(ctx, d, nil, &ad)
+	if stop != nil {
+		defer stop()
+	}
+	if err == nil {
 		t.Error("expect an error; but got none")
 	}
 }
@@ -527,7 +535,11 @@
 	}
 
 	d1, _ := df.New(ctx)
-	if _, err := testutil.Advertise(ctx, d1, nil, &ad); err != nil {
+	stop, err := testutil.Advertise(ctx, d1, nil, &ad)
+	if stop != nil {
+		defer stop()
+	}
+	if err != nil {
 		t.Error(err)
 	}
 	d2, _ := df.New(ctx)
@@ -541,7 +553,11 @@
 
 	// Make sure advertise and scan do not work after closed.
 	ad.Id = discovery.AdId{} // To avoid dup error.
-	if _, err := testutil.Advertise(ctx, d1, nil, &ad); err == nil {
+	stop, err = testutil.Advertise(ctx, d1, nil, &ad)
+	if stop != nil {
+		defer stop()
+	}
+	if err == nil {
 		t.Error("expect an error; but got none")
 	}
 	if err := testutil.ScanAndMatch(ctx, d2, ``, ad); err == nil {
diff --git a/lib/discovery/plugins/ble/ble_test.go b/lib/discovery/plugins/ble/ble_test.go
index 2bbcea7..e8dff79 100644
--- a/lib/discovery/plugins/ble/ble_test.go
+++ b/lib/discovery/plugins/ble/ble_test.go
@@ -515,6 +515,7 @@
 	adinfo.Hash = idiscovery.AdHash{7, 8, 9}
 	adinfo.TimestampNs = 1002
 	stop, err = testutil.Advertise(ctx, p1, &adinfo)
+	defer stop()
 	if err != nil {
 		t.Fatal(err)
 	}
diff --git a/lib/discovery/plugins/testutil/util.go b/lib/discovery/plugins/testutil/util.go
index 5178542..0433729 100644
--- a/lib/discovery/plugins/testutil/util.go
+++ b/lib/discovery/plugins/testutil/util.go
@@ -22,6 +22,7 @@
 	for _, adinfo := range adinfos {
 		wg.Add(1)
 		if err := p.Advertise(ctx, adinfo, wg.Done); err != nil {
+			cancel()
 			return nil, fmt.Errorf("Advertise failed: %v", err)
 		}
 	}
diff --git a/lib/discovery/plugins/vine/vine.go b/lib/discovery/plugins/vine/vine.go
index 4f71bc1..3795321 100644
--- a/lib/discovery/plugins/vine/vine.go
+++ b/lib/discovery/plugins/vine/vine.go
@@ -60,7 +60,8 @@
 
 		// We need a context that is detached from the deadlines and cancellation of ctx
 		// since we have to unpublish the advertisement from peers after ctx is canceled.
-		rctx, _ := context.WithRootCancel(ctx)
+		rctx, cancel := context.WithRootCancel(ctx)
+		defer cancel()
 		defer p.unpublish(rctx, adinfo.Ad.Id)
 
 		for {
diff --git a/lib/discovery/testutil/util.go b/lib/discovery/testutil/util.go
index 738e495..deb5676 100644
--- a/lib/discovery/testutil/util.go
+++ b/lib/discovery/testutil/util.go
@@ -79,6 +79,7 @@
 	ctx, cancel := context.WithCancel(ctx)
 	scanCh, err := d.Scan(ctx, query)
 	if err != nil {
+		cancel()
 		return nil, nil, fmt.Errorf("Scan failed: %v", err)
 	}
 	stop := func() {
