Placeholder-Software / Dissonance

Unity Voice Chat Asset
70 stars 5 forks source link

[bug] Live voice chat stops working when the master drops out #98

Closed maburkitt closed 6 years ago

maburkitt commented 6 years ago

Not sure if this is the same issue reported already, could be related.

Context

Steps to recreate:

1) 3 or more users using Photon PUN connect - voice works fine 2) the master drops out 3) the 2 remaining people cannot hear each other 4) The new person joining can (sometimes) hear the new master and vice versa, but not always 5) New people joining can hear the new master 6) Old master re-joining has same audio issues as everyone else

Expected Behavior

The voice should be uninterrupted

Actual Behavior

No-one can hear anyone else until they re-join

Workaround

Everyone leaving the session and starting a new session / everyone other than the new master leaving the session and re-joining.

Your Environment

Include as many relevant details about the environment you experienced the bug in

maburkitt commented 6 years ago

Related log traces from the same session (2 different snapshots - not sure which is related to the issue, but I suspect it is the latter):

[Dissonance:Playback] (20:41:06.611) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (41 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (42 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (43 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (44 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (45 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (46 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (47 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (48 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (49 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (50 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (51 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (52 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (53 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (54 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (55 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (56 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (57 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (58 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (59 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.612) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (60 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.801) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (57 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.801) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (58 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.801) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (59 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.871) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (59 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.891) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (60 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:06.961) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (60 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:07.040) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (59 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:07.040) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (60 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Playback] (20:41:07.151) EncodedAudioBuffer: Error: Encoded audio heap is getting very large (60 items)! This is probably a bug in Dissonance, we're sorry! Please report the bug on the issue tracker "https://github.com/Placeholder-Software/Dissonance/issues". You could also seek help on the community at "http://placeholder-software.co.uk/dissonance/community" to get help for a temporary workaround. Error ID: 59EE0102-FF75-467A-A50D-00BF670E9B8C

AND

[Dissonance:Network] (20:52:17.856) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:17.923) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:17.968) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.079) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.124) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.179) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.235) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.280) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.337) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.338) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.391) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.392) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.436) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.436) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.493) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.493) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

[Dissonance:Network] (20:52:18.548) PLFFJGIIGFE: Received a 'VoiceData' packet with incorrect session ID. Expected 105616261, got 2028165424

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43)

martindevans commented 6 years ago

That's definitely not working correctly. I can't remember exactly how Photon handles disconnects but what Dissonance should do is notice the disconnect, kill all the clients, spin up a new master node (on whichever node Photon has decided is the new host) and connect all the clients to the new master. From the second log there's clearly some kind of mismatch with two sessions running at once (receiving client thinks it's in 105616261, sending client and server think they're in 2028165424).

I'll have to investigate this and see if I can reproduce it. Unfortunately I'm away at the Unite Berlin conference all week, so I won't be able to do any real work on this until next Monday :(

maburkitt commented 6 years ago

no worries, I went to Unite Amsterdam last year - couldn't make it this year, but have fun.

Mark

martindevans commented 6 years ago

I've had a look into this. It looks like we need to explicitly handle the host migration event in Dissonance. Try adding this anywhere into PhotonCommsNetwork.cs:

// ReSharper disable once UnusedMember.Local (Justification: invoked indirectly by photon)
private void OnMasterClientSwitched([NotNull] global::PhotonPlayer newMasterClient)
{
    // The photon master client has switched. Kill the current local Dissonance network system, this will force it to
    // re-initialize (either as the host, if that responsibility is now ours, or as the client but properly connected to the new master).
    Stop();

    Log.Info("PUN Master Client switched to '{0}'. Resetting Dissonance network session", newMasterClient.ID);
}

When the photon host migrates it will tear down the current Dissonance session and immediately establish a new one (with the new master client as the host)

maburkitt commented 6 years ago

Hi Martin,

That's great - looks like this will work.

thanks

On 25 June 2018 at 15:52, Martin Evans notifications@github.com wrote:

I've had a look into this. It looks like we need to explicitly handle the host migration event in Dissonance. Try adding this anywhere into PhotonCommsNetwork.cs:

// ReSharper disable once UnusedMember.Local (Justification: invoked indirectly by photon) private void OnMasterClientSwitched([NotNull] global::PhotonPlayer newMasterClient) { // The photon master client has switched. Kill the current local Dissonance network system, this will force it to // re-initialize (either as the host, if that responsibility is now ours, or as the client but properly connected to the new master). Stop();

Log.Info("PUN Master Client switched to '{0}'. Resetting Dissonance network session", newMasterClient.ID);

}

When the photon host migrates it will tear down the current Dissonance session and immediately establish a new one (with the new master client as the host)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Placeholder-Software/Dissonance/issues/98#issuecomment-399980158, or mute the thread https://github.com/notifications/unsubscribe-auth/AF5mMrfa0RibY91UnDo7JfS4E_WRS0ZNks5uAPk2gaJpZM4Urg04 .

martindevans commented 6 years ago

This fix has been included in the new PUN integration for Dissonance 6.2.3, which is now available on the asset store.