From c9d16ea98c6158ee72f3ee9a8fee1ef4ab6d30ec Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Wed, 17 Aug 2022 13:58:03 +0530 Subject: [PATCH] Use sampling only for closed pipe errors (#928) --- pkg/sfu/downtrack.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/sfu/downtrack.go b/pkg/sfu/downtrack.go index efe7a4000..e0bd92e03 100644 --- a/pkg/sfu/downtrack.go +++ b/pkg/sfu/downtrack.go @@ -153,8 +153,8 @@ type DownTrack struct { deltaStatsSnapshotId uint32 // Debug info - pktsDropped atomic.Uint32 - writeErrors atomic.Uint32 + pktsDropped atomic.Uint32 + writeIOErrors atomic.Uint32 isNACKThrottled atomic.Bool @@ -475,9 +475,13 @@ func (d *DownTrack) WriteRTP(extPkt *buffer.ExtPacket, layer int32) error { _, err = d.writeStream.WriteRTP(hdr, payload) if err != nil { d.pktsDropped.Inc() - writeErrors := d.writeErrors.Inc() - if (writeErrors % 100) == 1 { - d.logger.Errorw("write rtp packet failed", err, "count", writeErrors) + if errors.Is(err, io.ErrClosedPipe) { + writeIOErrors := d.writeIOErrors.Inc() + if (writeIOErrors % 100) == 1 { + d.logger.Errorw("write rtp packet failed", err, "count", writeIOErrors) + } + } else { + d.logger.Errorw("write rtp packet failed", err) } return err }