Skip to content

Original exception not displayed in log due to java.lang.IllegalStateException: Recording already ended #8119

@dcdh

Description

@dcdh

Describe the bug

I have got a quarkus application using opentelemetry extension pushing span using vertx grpc.

Spans record a lot of stacktrace due to a technical exception. Because this is so huge, vertx grpc throw an io.vertx.grpc.common.MessageSizeOverflowException when pushing the batch spans.

The stack in logs return

Uncaught exception received by Vert.x: java.lang.IllegalStateException : recording already ended

Steps to reproduce

I do not have a public reproducer.

What did you expect to see?

I expect to see the original exception from grpc (MessageSizeOverflowException)
Also, maybe the content too, to beter understand the cause of the exception.

What did you see instead?

Only a stacktrace about recording already ended.

What version and what artifacts are you using?

quarkus 3.31.4
opentelemetry-sdk: 1.57.0

Environment
Compiler: openjdk version "25" Temurin-25+36 (build 25+36-LTS)
OS: windows 11

Additional context

I guess a way to fix it is to log before recording a failure.

In GrpcExporter, on the method onError by changing the location of metricRecording.finishFailed(e) after calls to logger and before doing result.failExceptionally(... should display the original exception.

Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions