Skip to content

[BUG]: Crash when reloading active scene with RenderStreaming in it #617

@yvanzine

Description

@yvanzine

Package version

Others

Environment

* Linux, Ubuntu 20.04
* Chromium 95.
* Unity Version [e.g. 2020.3.24f1]
* Packages:
[com.unity.webrtc 2.3.3-preview]
[UnityRenderStreaming 3.0.1-preview]

Steps To Reproduce

Execute this line of code after initialization of RenderStreaming Scene:

Scene scene = SceneManager.GetActiveScene(); if(scene != null) SceneManager.LoadScene(scene.name);

This will reload your active scene, effectively resetting your scene state. This is needed to reset state of the RenderStreaming application and for other activities. I want to ask if this type of reset has ever been attempted. This should be fixed in case we want to unload and load the scenes again which is a very common scenario in Unity.

So it works about 3-4 times and then it will crash out with the stack after this bug report.

I suspect that Context inherits IVideoEncoderObserver which inherits from sigslot::has_slots<> and is deleted twice or something like that. I am trying to debug the webrtc plugin right now and will have an idea why soon.

Thanks!


Caught fatal signal - signo:11 code:1 errno:0 addr:0x10
Obtained 29 stack frames.
#0 0x007ff3af8d93c0 in funlockfile
#1 0x007ff3a988fa55 in sigslot::has_slotssigslot::single_threaded::do_disconnect_all(sigslot::has_slots_interface*)
#2 0x007ff3a988cd62 in unity::webrtc::Context::~Context()
#3 0x007ff3a988cec9 in unity::webrtc::Context::~Context()
#4 0x007ff3a988b8be in unity::webrtc::ContextManager::DestroyContext(int)
#5 0x000000415a0d6d in (wrapper managed-to-native) Unity.WebRTC.NativeMethods:ContextDestroy (int)
#6 0x0000004159ed14 in Unity.WebRTC.WebRTC:Dispose ()
#7 0x007ff3ab2a8cdd in mono_print_method_from_ip
#8 0x007ff3ab418b18 in mono_perfcounter_foreach
#9 0x007ff3ab4199c5 in mono_runtime_invoke
#10 0x007ff3b0a41432 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#11 0x007ff3b0a3f6d2 in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#12 0x007ff3b0a3f5d1 in ScriptingInvocation::InvokeChecked(ScriptingExceptionPtr*)
#13 0x007ff3b0a7adf7 in SerializableManagedRef::CallMethod(Object&, ScriptingMethodPtr)
#14 0x007ff3b0a21cd1 in MonoBehaviour::WillDestroyComponent()
#15 0x007ff3b06891ee in GameObject::WillDestroyGameObject()
#16 0x007ff3b08afaac in PreDestroyRecursive(GameObject&, unsigned long*)
#17 0x007ff3b08b0443 in DestroyObjectHighLevel_Internal(Object*, bool)
#18 0x007ff3b08b1472 in UnloadGameScene()
#19 0x007ff3b08d3985 in LoadSceneOperation::PlayerLoadSceneFromThread()
#20 0x007ff3b08d3569 in LoadSceneOperation::IntegrateMainThread()
#21 0x007ff3b08d4c7c in PreloadManager::UpdatePreloadingSingleStep(PreloadManager::UpdatePreloadingFlags, int)
#22 0x007ff3b08d53aa in PreloadManager::WaitForAllAsyncOperationsToComplete()
#23 0x007ff3b08be067 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#24 0x007ff3b08be022 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#25 0x007ff3b08be5ce in PlayerLoop()
#26 0x007ff3b0aa1452 in PlayerMain(int, char**)
#27 0x007ff3af6f90b3 in __libc_start_main
#28 0x00000000201029 in _start
Segmentation fault (core dumped)

Current Behavior

Crash

Expected Behavior

Should not crash

Anything else?

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingwaiting for releaseThis issue is already fixed and will be contained in next version

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions