-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Error converting traces to OTLP (\uFFFD) #2589
Comments
The same error happens when submitting directly to the server
IF you want to investigate yourself I would recommend bisecting the payload to reduce it to a single span that's failing. |
Hi @joffrey-bion , hmm after going through your provided json (both) and and once i went through the error logs, i found:
So to fix that, what i did is one of the 2 things:
And once clear cache/reload and after re-uploading the json , jaeger parses it . Disclaimer: Again I am still getting used to how jaeger works so I dunno why you have negative value for "droppedAttributesCount" in first place and also i dunno changing value of 'droppedAttributesCount' , how it gonna affects. And from what i read here so i think based on that I don't want to direct you into wrong direction so I hope someone from maintainers team check if i am getting it correctly? |
also we can see here that 'droppedAttributesCount' is here unsigned int |
@MAX-786 thanks for your investigation. It is spot-on. I checked the attached JSON file and see this:
Meanwhile, the OTLP format defines the value of this field as uint32 So the provided JSON files are malformed, and are correctly rejected (albeit the error message could've been much better - it does mention I am closing this issue as wontfix. |
Thank you for the help, @MAX-786. Yeah I had also figured out the replacement character, and the location of the -1 (the 10th byte of the snippet in the log). But I don't get why the parser would replace a valid character like - or 1 by the replacement character. This is normally meant for encoding errors. You're right that it's possible that some deserialization process just decides -1 is so outrageous that it needs to be converted to the replacement character 😆 but that would be a very weird way to fail as opposed to a simple error mentioning the bounds. I'm using the opentelemetry-java library to generate these traces, so it could be a bug there if it produces negative values when it shouldn't. |
about 'error message could be better' |
@yurishkuro I still believe this issue warrants better error handling, but I guess it is on the Jaeger server side, not Jaeger UI. Do you know where I should open such issue? |
What better error handing do you expect here? Nothing crashes, you get an error in the UI when trying to import a malformed file. |
Yep i think he phrased it wrong (hopefully) and he meant that it can show better error message as you already said above. |
Well there are two things here:
|
Internal server error is a crash as far as I can tell (on server side, but still). It would be best if the server handled the error properly, and then offered an error message that the UI could display instead of the generic failure.
I think there is a lot that can be done here. Catching the error, parsing the error message, changing to a maintained library, etc. I'm not saying this is simple, but I don't think it's fair to say that not much can be done. |
I checked - the server already returns the best error it can muster given the underlying library's response: I agree, it should be 400 error, not 500. But the UI is completely ignoring the error message, that can be fixed. |
booked related jaegertracing/jaeger#6598 |
Thanks for opening the issue on server side! Regarding the error in the frontend, I agree it would be great to have the error from the server shown somehow. That would go a long way already. If some day the error message from the server gets better, it's even greater |
What happened?
I'm running
jaeger-all-in-one
.When importing some OTLP traces, I get
Error converting traces to OTLP
:When checking server logs, I see the following:
The file itself doesn't contain this
\uFFFD
replacement char, so I'm guess there might be some encoding issue between the UI and the backend.Steps to reproduce
Upload
tab.json
because GitHub doesn't like.jsonl
) or opentelemetry_traces.json (2)Expected behavior
The traces are imported successfully
Relevant log output
Screenshot
No response
Additional context
No response
Jaeger backend version
1.62.0
SDK
opentelemetry-java with kotlin bindings
Pipeline
Jaeger all-in-one
Stogage backend
Jaeger all-in-one
Operating system
Windows
Deployment model
Local Jaeger all-in-one
Deployment configs
The text was updated successfully, but these errors were encountered: