Skip to content

Disabling a raster overlay causes crash in Debug build #614

@j9liu

Description

@j9liu

What happened?

Noticed while working on #612, but confirmed I could reproduce it on main.

Disabling a raster overlay (and especially one that is still loading) results in a crash Debug builds. I tried to look at the fields with the attached debugger, but it was hard to tell what was going on because a lot of variables were optimized out or garbage.

Received signal SIGSEGV
Obtained 52 stack frames
0x00007ffa39296574 (CesiumForUnityNative-Runtime) std::shared_ptr<CesiumRasterOverlays::IPrepareRasterOverlayRendererResources>::operator bool (at C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.38.33130/include/memory:1781)
0x00007ffa392960fc (CesiumForUnityNative-Runtime) CesiumRasterOverlays::RasterOverlayTile::~RasterOverlayTile (at C:/Dev/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/CesiumRasterOverlays/src/RasterOverlayTile.cpp:46)
0x00007ffa38e114a8 (CesiumForUnityNative-Runtime) CesiumRasterOverlays::RasterOverlayTile::`scalar deleting destructor'
0x00007ffa38e13d34 (CesiumForUnityNative-Runtime) CesiumUtility::ReferenceCounted<CesiumRasterOverlays::RasterOverlayTile,0>::releaseReference (at C:/Dev/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/CesiumUtility/include/CesiumUtility/ReferenceCounted.h:89)
0x00007ffa38ec71e4 (CesiumForUnityNative-Runtime) CesiumUtility::IntrusivePointer<CesiumRasterOverlays::RasterOverlayTile>::operator= (at C:/Dev/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/CesiumUtility/include/CesiumUtility/IntrusivePointer.h:174)
0x00007ffa392995fd (CesiumForUnityNative-Runtime) CesiumRasterOverlays::TileProviderAndTile::~TileProviderAndTile (at C:/Dev/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/CesiumRasterOverlays/src/ActivatedRasterOverlay.cpp:356)
0x00007ffa392a27c8 (CesiumForUnityNative-Runtime) CesiumRasterOverlays::TileProviderAndTile::`scalar deleting destructor'
0x00007ffa392a2082 (CesiumForUnityNative-Runtime) async::detail::task_result_holder<CesiumRasterOverlays::TileProviderAndTile>::~task_result_holder<CesiumRasterOverlays::TileProviderAndTile> (at C:/Users/Janine.Liu/.ezvcpkg/dbe35ceb30c688bf72e952ab23778e009a578f18/installed/x64-windows-unity/include/async++/task_base.h:202)
0x00007ffa392a201c (CesiumForUnityNative-Runtime) async::detail::task_result<CesiumRasterOverlays::TileProviderAndTile>::~task_result<CesiumRasterOverlays::TileProviderAndTile> (at C:/Users/Janine.Liu/.ezvcpkg/dbe35ceb30c688bf72e952ab23778e009a578f18/installed/x64-windows-unity/include/async++/task_base.h:271)
0x00007ffa3929c693 (CesiumForUnityNative-Runtime) async::detail::task_func<async::detail::inline_scheduler_impl,async::detail::continuation_exec_func<async::detail::inline_scheduler_impl,async::task<CesiumRasterOverlays::TileProviderAndTile>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::CatchFunction<`CesiumRasterOverlays::ActivatedRasterOverlay::doLoad'::`2'::<lambda_3>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::QueuedScheduler>,async::task<CesiumRasterOverlays::TileProviderAndTile> &&>,std::integral_constant<bool,0>,1>,CesiumRasterOverlays::TileProviderAndTile>::~task_func<async::detail::inline_scheduler_impl,async::detail::continuation_exec_func<async::detail::inline_scheduler_impl,async::task<CesiumRasterOverlays::TileProviderAndTile>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::CatchFunction<`CesiumRasterOverlays::ActivatedRasterOverlay::doLoad'::`2'::<lambda_3>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::QueuedScheduler>,async::task<CesiumRasterOverlays::TileProviderAndTile> &&>,std::integral_constant<bool,0>,1>,CesiumRasterOverlays::TileProviderAndTile> (at C:/Users/Janine.Liu/.ezvcpkg/dbe35ceb30c688bf72e952ab23778e009a578f18/installed/x64-windows-unity/include/async++/task_base.h:427)
0x00007ffa3929c708 (CesiumForUnityNative-Runtime) async::detail::task_func<async::detail::inline_scheduler_impl,async::detail::continuation_exec_func<async::detail::inline_scheduler_impl,async::task<CesiumRasterOverlays::TileProviderAndTile>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::CatchFunction<`CesiumRasterOverlays::ActivatedRasterOverlay::doLoad'::`2'::<lambda_3>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::QueuedScheduler>,async::task<CesiumRasterOverlays::TileProviderAndTile> &&>,std::integral_constant<bool,0>,1>,CesiumRasterOverlays::TileProviderAndTile>::`scalar deleting destructor'
0x00007ffa3929c6cb (CesiumForUnityNative-Runtime) async::detail::task_func<async::detail::inline_scheduler_impl,async::detail::continuation_exec_func<async::detail::inline_scheduler_impl,async::task<CesiumRasterOverlays::TileProviderAndTile>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::CatchFunction<`CesiumRasterOverlays::ActivatedRasterOverlay::doLoad'::`2'::<lambda_3>,CesiumRasterOverlays::TileProviderAndTile,CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::QueuedScheduler>,async::task<CesiumRasterOverlays::TileProviderAndTile> &&>,std::integral_constant<bool,0>,1>,CesiumRasterOverlays::TileProviderAndTile>::destroy (at C:/Users/Janine.Liu/.ezvcpkg/dbe35ceb30c688bf72e952ab23778e009a578f18/installed/x64-windows-unity/include/async++/task_base.h:432)

Environment

Cesium for Unity version: v1.18.1
Unity Editor Version: 2022.3.55.f1
Operating System: Windows

Reproduction steps

  1. Open 01_CesiumWorld in Cesium for Unity Samples,
  2. Disable the raster overlay on Cesium World Terrain.
  3. Observe the crash.

Supporting evidence

Editor.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds triageNew issues in need of triage to determine reproducibility, scope, and urgency

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions