You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by dc...@apache.org on 2019/10/23 20:43:23 UTC

[thrift] branch master updated: THRIFT-4984: Ignore EOF error in TSimpleServer ReadFrame call

This is an automated email from the ASF dual-hosted git repository.

dcelasun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new c03e2aa  THRIFT-4984: Ignore EOF error in TSimpleServer ReadFrame call
c03e2aa is described below

commit c03e2aa196615bc3149d1829b8b8ed01e58c7aa1
Author: Yuxuan 'fishy' Wang <yu...@reddit.com>
AuthorDate: Wed Oct 23 13:43:09 2019 -0700

    THRIFT-4984: Ignore EOF error in TSimpleServer ReadFrame call
    
    EOF isn't an error that should be bubbled up to the
    caller and we are already ignoring other EOF errors in
    TSimpleServer.processRequest [0].
    
    Client: go
    
    This closes #1904.
    
    [0]: https://github.com/apache/thrift/blob/cecee50308fc7e6f77f55b3fd906c1c6c471fa2f/lib/go/thrift/simple_server.go#L265-L266
---
 lib/go/thrift/simple_server.go | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/go/thrift/simple_server.go b/lib/go/thrift/simple_server.go
index f8efbed..c1ab957 100644
--- a/lib/go/thrift/simple_server.go
+++ b/lib/go/thrift/simple_server.go
@@ -20,6 +20,7 @@
 package thrift
 
 import (
+	"io"
 	"log"
 	"runtime/debug"
 	"sync"
@@ -231,7 +232,7 @@ func (p *TSimpleServer) processRequests(client TTransport) error {
 
 	defer func() {
 		if e := recover(); e != nil {
-			log.Printf("panic in processor: %s: %s", e, debug.Stack())
+			log.Printf("panic in processor: %v: %s", e, debug.Stack())
 		}
 	}()
 
@@ -255,9 +256,12 @@ func (p *TSimpleServer) processRequests(client TTransport) error {
 			// won't break when it's called again later when we
 			// actually start to read the message.
 			if err := headerProtocol.ReadFrame(); err != nil {
+				if err == io.EOF {
+					return nil
+				}
 				return err
 			}
-			ctx = AddReadTHeaderToContext(defaultCtx, headerProtocol.GetReadHeaders())
+			ctx = AddReadTHeaderToContext(ctx, headerProtocol.GetReadHeaders())
 			ctx = SetWriteHeaderList(ctx, p.forwardHeaders)
 		}