diff --git a/rpc/client.go b/rpc/client.go index 8a5d1ce..7f0a5fa 100644 --- a/rpc/client.go +++ b/rpc/client.go @@ -9,6 +9,7 @@ import ( "sync" "sync/atomic" "time" + "github.com/duanhf2012/origin/log" ) const( @@ -87,7 +88,8 @@ func (bc *Client) checkRpcCallTimeout() { pCall := pElem.Value.(*Call) if now.Sub(pCall.callTime) > bc.callRpcTimeout { strTimeout := strconv.FormatInt(int64(bc.callRpcTimeout/time.Second), 10) - pCall.Err = errors.New("RPC call takes more than " + strTimeout + " seconds") + pCall.Err = errors.New("RPC call takes more than " + strTimeout + " seconds,method is "+pCall.ServiceMethod) + log.SError(pCall.Err.Error()) bc.makeCallFail(pCall) bc.pendingLock.Unlock() continue diff --git a/rpc/server.go b/rpc/server.go index 9b67803..7da1844 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -375,21 +375,21 @@ func (server *Server) selfNodeRpcHandlerAsyncGo(client *Client, callerRpcHandler req.requestHandle = func(Returns interface{}, Err RpcError) { v := client.RemovePending(callSeq) if v == nil { - log.SError("rpcClient cannot find seq ", pCall.Seq, " in pending") + log.SError("rpcClient cannot find seq ", callSeq, " in pending, service method is ",serviceMethod) //ReleaseCall(pCall) ReleaseRpcRequest(req) return } if len(Err) == 0 { - pCall.Err = nil + v.Err = nil } else { - pCall.Err = Err + v.Err = Err } if Returns != nil { - pCall.Reply = Returns + v.Reply = Returns } - pCall.rpcHandler.PushRpcResponse(pCall) + v.rpcHandler.PushRpcResponse(v) ReleaseRpcRequest(req) } }