Skip to content

Handling of expected error codes coming from grpc storage plugins #1741

@sergiimk

Description

@sergiimk

Requirement - what kind of business use case are you trying to solve?

We are implementing a custom gRPC-based storage plugin as per this doc.

Problem - what in Jaeger blocks you from solving the requirement?

When searching in jaeger UI for a non-existing trace ID the GetTrace function in the storage plugin is expected to return spanstore.ErrTraceNotFound. However the error handling on the Jaeger side doesn't seem to handle this error correctly and treats it as a generic internal error:

{"level":"error","ts":1566246187.758402,"caller":"app/http_handler.go:409","msg":"HTTP handler, Internal Server Error","error":"grpc stream error: rpc error: code = Unknown desc = trace was not found", ...

UI displays:

HTTP Error: grpc stream error: rpc error: code = Unknown desc = trace was not found

You can easily reproduce this issue by running Jaeger with the example in-memory storage gRPC plugin and searching for a trace.

Impact: cosmetic in this case, but other expected error types returned by gRPC plugin may be affected as well.

Proposal - what do you suggest to solve the problem or improve the existing situation?

Any open questions to address

Metadata

Metadata

Assignees

No one assigned

    Labels

    buggood first issueGood for beginnershelp wantedFeatures that maintainers are willing to accept but do not have cycles to implement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions