I wrote a parallel daylight calculation in GH and the algorithm itself doesn’t involve any Rhino class except Point3d
& Vector3d
. Since 1-2 weeks ago Rhino would sometimes crash during such calculation.
The crash resides in RhinoCore
, on a separated GC thread, and it seems something is double-freed, resulting in a corrupt heap. There’s plenty of free memory remaining.
Version
6.33.20343.16431, 12/08/2020
Tried the following without resolving the issue:
- Turned off GH’s preview.
- Disabled other plugins
- Disabled
History
- Disabled Background(Concurrent) GC thru
machine.config
Full memory dump
Sent through the support upload page.
!heap
*
HEAP ERROR DETECTED *
*
Details:
Heap address: 0000024fe5c60000
Error address: 0000024fc7d2fcb0
Error type: HEAP_FAILURE_BLOCK_NOT_BUSY
Details: The caller performed an operation (such as a free
or a size check) that is illegal on a free block.
Follow-up: Check the error’s stack trace to find the culprit.Stack trace:
Stack trace at 0x00007ffd34e51848
00007ffd34d8ed11: ntdll!RtlpLogHeapFailure+0x45
00007ffd34d9e2e0: ntdll!RtlFreeHeap+0x964a0
00007ffd30fdb38b: ucrtbase!_free_base+0x1b
00007ffcdd0d4deb: RhinoCore!CRhinoHistoryRecordTable::GetPrunedHistoryRecord+0x20db
00007ffcdd0d4eb8: RhinoCore!CRhinoHistoryRecordTable::GetPrunedHistoryRecord+0x21a8
00007ffce91395c3: opennurbs!ON_ObjRef::DecrementProxyReferenceCount+0x43
00007ffce9133ad7: opennurbs!ON_ObjRef::~ON_ObjRef+0x17
00007ffce973bea3: rhcommon_c!CRhinoObjRef_Delete+0x13
00007ffcbc7262f7: +0xbc7262f7
Stacktrace
[0x0] ntdll!NtWaitForMultipleObjects + 0x14
[0x1] ntdll!WerpWaitForCrashReporting + 0xa8
[0x2] ntdll!RtlReportExceptionHelper + 0x33e
[0x3] ntdll!RtlReportException + 0x9d
[0x4] ntdll!RtlReportFatalFailure$filt$0 + 0x33
[0x5] ntdll!_C_specific_handler + 0x96
[0x6] ntdll!RtlpExecuteHandlerForException + 0xf
[0x7] ntdll!RtlDispatchException + 0x40f
[0x8] ntdll!RtlRaiseException + 0x316
[0x9] ntdll!RtlReportFatalFailure + 0x9
[0xa] ntdll!RtlReportCriticalFailure + 0x97
[0xb] ntdll!RtlpHeapHandleError + 0x12
[0xc] ntdll!RtlpHpHeapHandleError + 0x7a
[0xd] ntdll!RtlpLogHeapFailure + 0x45
[0xe] ntdll!RtlFreeHeap + 0x964a0
[0xf] ucrtbase!_free_base + 0x1b
[0x10] RhinoCore!CRhinoHistoryRecordTable::GetPrunedHistoryRecord + 0x20db
[0x11] RhinoCore!CRhinoHistoryRecordTable::GetPrunedHistoryRecord + 0x21a8
[0x12] opennurbs!ON_ObjRef::DecrementProxyReferenceCount + 0x43
[0x13] opennurbs!ON_ObjRef::~ON_ObjRef + 0x17
[0x14] rhcommon_c!CRhinoObjRef_Delete + 0x13
[0x15] 0x7ffcbc7262f7
[0x16] 0x7ffcbc726260
[0x17] clr!FastCallFinalizeWorker + 0x6
[0x18] clr!FastCallFinalize + 0x55
[0x19] clr!MethodTable::CallFinalizer + 0xb5
[0x1a] clr!CallFinalizer + 0x5e
[0x1b] clr!FinalizerThread::DoOneFinalization + 0x95
[0x1c] clr!FinalizerThread::FinalizeAllObjects + 0x124
[0x1d] clr!FinalizerThread::FinalizerThreadWorker + 0xba
[0x1e] clr!ManagedThreadBase_DispatchInner + 0x40
[0x1f] clr!ManagedThreadBase_DispatchMiddle + 0x6c
[0x20] clr!ManagedThreadBase_DispatchOuter + 0x4c
[0x21] clr!FinalizerThread::FinalizerThreadStart + 0x116
[0x22] clr!Thread::intermediateThreadProc + 0x8b
[0x23] kernel32!BaseThreadInitThunk + 0x14
[0x24] ntdll!RtlUserThreadStart + 0x21
SystemInfo
Rhino 6 SR33 2020-12-8 (Rhino 6, 6.33.20343.16431, Git hash:master @ d492bef53a3f6a576db4d197feaaa7ddf0c7a653)
License type: 教育版, 版本2020-12-08
License details: Cloud Zoo. In use by: Keyu ()Windows 10.0.0 SR0.0 or greater (Physical RAM: 16Gb)
Machine name: XXXXXXComputer platform: DESKTOP
Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce GTX 1050 (NVidia) Memory: 2GB, Driver date: 11-6-2020 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 457.30
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
- Secondary monitor attached to adapter port #1OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: OnAnti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: HighVendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 11-6-2020
Driver Version: 27.21.14.5730
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 2 GBRhino plugins
C:\Program Files\Rhino 6\Plug-ins\Commands.rhp “Commands” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 6\Plug-ins\RhinoRender.rhp “Rhino Render”
C:\Program Files\Rhino 6\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 6\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 6\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\RhinoCycles.rhp “RhinoCycles” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 6.33.20343.16431
C:\Program Files\Rhino 6\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\ProgramData\McNeel\Rhinoceros\6.0\Plug-ins\Twinmotion Direct Link 2020.2 (e24ee14a-9514-47da-8fe6-f6e61b20160e)\Twinmotion Direct Link 2020.rhp “Twinmotion Direct Link 2020” 1.0.6.0
C:\Program Files\Rhino 6\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Common Files\McNeel\Rhinoceros\6.0\Plug-ins\SectionTools (fbdb1d7f-8cfb-42c1-9858-87cb6315932c)\2019.7.29.584\SectionTools.rhp “SectionTools”