Skip to content

Commit e3b5a07

Browse files
committed
fix: return a grpc error when discard failed
Signed-off-by: ningmingxiao <ning.mingxiao@zte.com.cn>
1 parent ea3d589 commit e3b5a07

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

channel.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package ttrpc
1919
import (
2020
"bufio"
2121
"encoding/binary"
22+
"errors"
2223
"fmt"
2324
"io"
2425
"net"
@@ -124,11 +125,11 @@ func (ch *channel) recv() (messageHeader, []byte, error) {
124125
}
125126

126127
if mh.Length > uint32(messageLengthMax) {
128+
errRecv := status.Errorf(codes.ResourceExhausted, "message length %v exceed maximum message size of %v", mh.Length, messageLengthMax)
127129
if _, err := ch.br.Discard(int(mh.Length)); err != nil {
128-
return mh, nil, fmt.Errorf("failed to discard after receiving oversized message: %w", err)
130+
errors.Join(errRecv, fmt.Errorf("failed to discard after receiving oversized message: %w", err))
129131
}
130-
131-
return mh, nil, status.Errorf(codes.ResourceExhausted, "message length %v exceed maximum message size of %v", mh.Length, messageLengthMax)
132+
return mh, nil, errRecv
132133
}
133134

134135
var p []byte

0 commit comments

Comments
 (0)