jaeger: "Unexpected end of JSON input" (empty body response from server)

Describe the bug What happens is that the UI receive a 200 status code with no JSON body from the server part. The strange thing is that it seems caused by some particular spans. When querying for spans other than these particular spans, the UI displays them gracefully.

I originally thought this was the same bug as #412.

To Reproduce Steps to reproduce the behavior:

  1. git clone https://github.com/gautaz/moleculer-tests.git
  2. cd moleculer-tests
  3. ./init.sh
  4. docker-compose up -d
  5. curl "http://127.0.0.1:$(docker-compose port gateway 10000 | cut -d: -f2)/calculator/add?left=1&right=a"
  6. open the Jaeger GUI on "http://127.0.0.1:$(docker-compose port jaeger 16686 | cut -d: -f2)"
  7. find traces for the calculator service

Expected behavior Even if some spans are corrupted, the server part should at least return the valid ones to the UI

Screenshots N/A

Version (please complete the following information):

  • OS: Linux
  • Jaeger version: 1.17
  • Deployment: Docker

What troubleshooting steps did you try? We tried to increase the Jaeger loglevel but nothing came out of it for now.

Additional context To generate spans without causing the issue: curl "http://127.0.0.1:$(docker-compose port gateway 10000 | cut -d: -f2)/calculator/add?left=1&right=1"

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Comments: 15 (13 by maintainers)

Most upvoted comments

As a quick fix if marshal fails we should just return an error. Once we accepted the trace data into the backend, it should be serializable. The NaN case needs to be treated on ingestion, e.g. with a sanitizer that would replace numeric NaN tags with string/NaN.