]> Cypherpunks repositories - gostls13.git/commitdiff
net/rpc: log I/O and internal errors only if debugLog is set.
authorHan-Wen Nienhuys <hanwen@google.com>
Mon, 16 Sep 2013 06:29:04 +0000 (16:29 +1000)
committerRob Pike <r@golang.org>
Mon, 16 Sep 2013 06:29:04 +0000 (16:29 +1000)
Fixes #6367.

R=rsc, r
CC=golang-dev
https://golang.org/cl/13395047

src/pkg/net/rpc/client.go
src/pkg/net/rpc/debug.go
src/pkg/net/rpc/server.go

index 608894fb0d6fe55eca35609a8570ffeea48f270f..c524d0a0a2de37204d255e02f35aee369093009e 100644 (file)
@@ -161,7 +161,7 @@ func (client *Client) input() {
        }
        client.mutex.Unlock()
        client.sending.Unlock()
-       if err != io.EOF && !closing {
+       if debugLog && err != io.EOF && !closing {
                log.Println("rpc: client protocol error:", err)
        }
 }
@@ -173,7 +173,9 @@ func (call *Call) done() {
        default:
                // We don't want to block here.  It is the caller's responsibility to make
                // sure the channel has enough buffer space. See comment in Go().
-               log.Println("rpc: discarding Call reply due to insufficient Done chan capacity")
+               if debugLog {
+                       log.Println("rpc: discarding Call reply due to insufficient Done chan capacity")
+               }
        }
 }
 
index 663663fe941f72f34a39cfb19cf112e6b3cb473e..926466d62551f551bda67f736ca90e2ab36dd7f4 100644 (file)
@@ -38,6 +38,9 @@ const debugText = `<html>
 
 var debug = template.Must(template.New("RPC debug").Parse(debugText))
 
+// If set, print log statements for internal and I/O errors.
+var debugLog = false
+
 type debugMethod struct {
        Type *methodType
        Name string
index 9ccd703b12ebf5b81f0306f6c967d8733fb7962b..7eb2dcf5a9fc84ecb3cd1882f796c44eb8e4466b 100644 (file)
@@ -266,6 +266,7 @@ func (server *Server) register(rcvr interface{}, name string, useName bool) erro
 
        if len(s.method) == 0 {
                str := ""
+
                // To help the user, see if a pointer receiver would work.
                method := suitableMethods(reflect.PtrTo(s.typ), false)
                if len(method) != 0 {
@@ -357,7 +358,7 @@ func (server *Server) sendResponse(sending *sync.Mutex, req *Request, reply inte
        resp.Seq = req.Seq
        sending.Lock()
        err := codec.WriteResponse(resp, reply)
-       if err != nil {
+       if debugLog && err != nil {
                log.Println("rpc: writing response:", err)
        }
        sending.Unlock()
@@ -435,7 +436,7 @@ func (server *Server) ServeCodec(codec ServerCodec) {
        for {
                service, mtype, req, argv, replyv, keepReading, err := server.readRequest(codec)
                if err != nil {
-                       if err != io.EOF {
+                       if debugLog && err != io.EOF {
                                log.Println("rpc:", err)
                        }
                        if !keepReading {