浏览代码

Merge pull request #7005 from heyitsanthony/fix-pprof

embed: deep copy user handlers
Anthony Romano 9 年之前
父节点
当前提交
a9f72ee0d4
共有 2 个文件被更改,包括 4 次插入2 次删除
  1. 3 1
      embed/etcd.go
  2. 1 1
      embed/serve.go

+ 3 - 1
embed/etcd.go

@@ -286,7 +286,9 @@ func startClientListeners(cfg *Config) (sctxs map[string]*serveCtx, err error) {
 				plog.Info("stopping listening for client requests on ", u.Host)
 			}
 		}()
-		sctx.userHandlers = cfg.UserHandlers
+		for k := range cfg.UserHandlers {
+			sctx.userHandlers[k] = cfg.UserHandlers[k]
+		}
 		if cfg.EnablePprof {
 			sctx.registerPprof()
 		}

+ 1 - 1
embed/serve.go

@@ -51,7 +51,7 @@ type serveCtx struct {
 
 func newServeCtx() *serveCtx {
 	ctx, cancel := context.WithCancel(context.Background())
-	return &serveCtx{ctx: ctx, cancel: cancel}
+	return &serveCtx{ctx: ctx, cancel: cancel, userHandlers: make(map[string]http.Handler)}
 }
 
 // serve accepts incoming connections on the listener l,