fix(gateway): synchronize qualification stage evidence
This commit is contained in:
@@ -823,6 +823,7 @@ func (p *qualificationPath) traverse(t *testing.T, payload []byte) (qualificatio
|
||||
beforeIngress := p.session.mediaIngress.Load()
|
||||
beforeRecovered := p.session.mediaRecovered.Load()
|
||||
beforeEnqueued := p.session.mediaEnqueued.Load()
|
||||
beforePacer := p.server.pacer.reservations.Load()
|
||||
trace, err := p.emit(t, payload)
|
||||
if err != nil {
|
||||
return trace, 0, err
|
||||
@@ -832,11 +833,17 @@ func (p *qualificationPath) traverse(t *testing.T, payload []byte) (qualificatio
|
||||
return trace, 0, err
|
||||
}
|
||||
afterMetrics := p.server.Metrics()
|
||||
deadline := time.Now().Add(2 * time.Second)
|
||||
for (afterMetrics.ProcessingSamples < beforeMetrics.ProcessingSamples+1 ||
|
||||
afterMetrics.MediaPackets <= beforeMetrics.MediaPackets) && time.Now().Before(deadline) {
|
||||
runtime.Gosched()
|
||||
afterMetrics = p.server.Metrics()
|
||||
}
|
||||
trace.NativeUDPIngress = p.session.mediaIngress.Load() > beforeIngress
|
||||
trace.ApolloRecovered = p.session.mediaRecovered.Load() > beforeRecovered
|
||||
trace.ProductionQueue = p.session.mediaEnqueued.Load() > beforeEnqueued
|
||||
trace.ProductionMediaLoop = afterMetrics.ProcessingSamples == beforeMetrics.ProcessingSamples+1
|
||||
trace.ProductionPacer = afterMetrics.PacingDelayNanos > beforeMetrics.PacingDelayNanos
|
||||
trace.ProductionPacer = p.server.pacer.reservations.Load() > beforePacer
|
||||
trace.VerseQUIC = afterMetrics.MediaPackets > beforeMetrics.MediaPackets
|
||||
trace.PublicClientDecode = true
|
||||
trace.PayloadPreserved = bytes.Equal(recovered, payload)
|
||||
|
||||
Reference in New Issue
Block a user