Skip to content

Commit 0261db7

Browse files
authored
Wrap errors (#43)
1 parent e12e318 commit 0261db7

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

Diff for: .golangci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ linters:
4646
- usestdlibvars
4747
- wastedassign
4848
- whitespace
49-
# - wrapcheck
49+
- wrapcheck
5050
settings:
5151
govet:
5252
enable-all: true

Diff for: client.go

+10-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package otgrpc
33
import (
44
"context"
55
"errors"
6+
"fmt"
67
"io"
78
"runtime"
89
"sync/atomic"
@@ -193,39 +194,42 @@ func (cs *openTracingClientStream) Header() (metadata.MD, error) {
193194
md, err := cs.ClientStream.Header()
194195
if err != nil {
195196
cs.finishFunc(err)
197+
return md, fmt.Errorf("failed to get header: %w", err)
196198
}
197-
return md, err
199+
return md, nil
198200
}
199201

200202
func (cs *openTracingClientStream) SendMsg(m interface{}) error {
201203
err := cs.ClientStream.SendMsg(m)
202204
if err != nil {
203205
cs.finishFunc(err)
206+
return fmt.Errorf("failed to send message: %w", err)
204207
}
205-
return err
208+
return nil
206209
}
207210

208211
func (cs *openTracingClientStream) RecvMsg(m interface{}) error {
209212
err := cs.ClientStream.RecvMsg(m)
210213
if errors.Is(err, io.EOF) {
211214
cs.finishFunc(nil)
212-
return err
215+
return err //nolint:wrapcheck
213216
} else if err != nil {
214217
cs.finishFunc(err)
215-
return err
218+
return fmt.Errorf("failed to receive message: %w", err)
216219
}
217220
if !cs.desc.ServerStreams {
218221
cs.finishFunc(nil)
219222
}
220-
return err
223+
return nil
221224
}
222225

223226
func (cs *openTracingClientStream) CloseSend() error {
224227
err := cs.ClientStream.CloseSend()
225228
if err != nil {
226229
cs.finishFunc(err)
230+
return fmt.Errorf("failed to close send: %w", err)
227231
}
228-
return err
232+
return nil
229233
}
230234

231235
func injectSpanContext(ctx context.Context, tracer opentracing.Tracer, clientSpan opentracing.Span) context.Context {

Diff for: server.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package otgrpc
22

33
import (
44
"context"
5+
"fmt"
56

67
opentracing "github.com/opentracing/opentracing-go"
78
"github.com/opentracing/opentracing-go/ext"
@@ -138,5 +139,9 @@ func extractSpanContext(ctx context.Context, tracer opentracing.Tracer) (opentra
138139
if !ok {
139140
md = metadata.New(nil)
140141
}
141-
return tracer.Extract(opentracing.HTTPHeaders, metadataReaderWriter{md})
142+
spanContext, err := tracer.Extract(opentracing.HTTPHeaders, metadataReaderWriter{md})
143+
if err != nil {
144+
return nil, fmt.Errorf("failed to extract span context: %w", err)
145+
}
146+
return spanContext, nil
142147
}

0 commit comments

Comments
 (0)