Placeholder-Software / Dissonance

Unity Voice Chat Asset
71 stars 5 forks source link

[bug] Once client gives Error 59EE0102-FF75-467A-A50D-00BF670E9B8C it never recovers #167

Closed maasaimosh closed 4 years ago

maasaimosh commented 4 years ago

Context

Long running voip session ( multiple hours ) eventually goes wrong

Expected Behavior

Voip session would operate continually without exceptions. Voip session would keep going indefinitely

Actual Behavior

After a few hours exceptions develop and

EncodedAudioBuffer: Voice Error: Encoded audio heap is getting very large (40 items)! Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

this counts up until:

EncodedAudioBuffer: Voice Error: Encoded audio heap is getting very large (80 items)! Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

This level 80 items just keeps getting logged.

Source code:

./Assets/Plugins/Dissonance/Core/Audio/Playback/EncodedAudioBuffer.cs
        public void Push(VoicePacket frame)
        {
            Log.Trace("Buffering encoded audio frame {0}", frame.SequenceNumber);

            _heap.Add(frame);
            Interlocked.Increment(ref _count);

            if (_count > 39 && _count % 10 == 0)
                Log.Warn(Log.PossibleBugMessage(string.Format("Encoded audio heap is getting very large ({0} items)", _count), "59EE0102-FF75-467A-A50D-00BF670E9B8C"));
        }

Workaround

None found

Steps to Reproduce

Provide a detailed set of steps to reproduce the problem

  1. Android client
  2. PC host
  3. Leave connected and transmitting for a few hours
  4. Observe Android logs

Your Environment

Amazon Fire Tablet running client local wifi networking PC host running server Dissonance 6.4.2

6.4.2

2017.4.28

Windows 10 x 64

Android development build Unity Editor hosting the PC server

martindevans commented 4 years ago

Do you have any more logs from a time this happened? As much of the log as possible would be very helpful if you can share it, thanks.

You mention exceptions developing as well as the heap size warning, what exceptions do you get?

Edit: I just noticed #166 is also your issue, is that the only exception you get?

maasaimosh commented 4 years ago

Yes. #166 contains all the errors.

As it says, I experienced 4 SendQueue errors.

Judging from the timestamps, these #167 warnings started up after the last on of those 4.

The client never recovered.

martindevans commented 4 years ago

I think once we sort out #166 this issue will disappear, once that data structure is corrupted almost anything can happen and the first place errors of that sort will be detected is the receive heap.

maasaimosh commented 4 years ago

fair enough... i wanted to document it separately in case it was unrelated.

I'll be doing a lot of further testing, so we will find out soon enough.

martindevans commented 4 years ago

Now that #166 is resolved, is this issue also resolved?

maasaimosh commented 4 years ago

yes. i reckon it is.