Closed yqf3139 closed 7 years ago
Looking at the stack trace you provided, I found this ticket: https://github.com/golang/go/issues/13868
I need to investigate if it's related but it points to the same line of code that the stack trace referenced.
We need to move queueLength
to the top of the remoteReporter
struct, and leave a comment explaining why, with a link to that Go issue.
Thanks.
I ran the jaeger image on a GCP machine which is 64 bit. Still cannot fully understand where the problem is if it is running on a 64 bit machine.
@yqf3139 before I put in the fix for this, do you mind applying the change locally and running your service again? I can't reproduce this issue on my end.
In jaeger-client-go/reporter.go change
type remoteReporter struct {
reporterOptions
sender transport.Transport
queue chan *zipkincore.Span
queueLength int64 // signed because metric's gauge is signed
queueDrained sync.WaitGroup
flushSignal chan *sync.WaitGroup
}
to
type remoteReporter struct {
queueLength int64 // signed because metric's gauge is signed
reporterOptions
sender transport.Transport
queue chan *zipkincore.Span
queueDrained sync.WaitGroup
flushSignal chan *sync.WaitGroup
}
@black-adder I will have a try.
@black-adder Thanks, problem solved by making the change. We use GOARCH=386
to build, so the problem is caused by the go issue.
Had the same problem and reordering the remoteReporter fields did work.
I was try to migrate from the zipkin backend to jaeger, so everything I need is to swap the tracer.
To init the tracer:
And then error occured:
When the error occured,
r.queueLength
is 0. Appreciate any helps.