Several times a day Grasshopper 1.0 is crashing. I’ve noticed one thing while not (yet) being able to exclude another:
When it crashes I “window select” components on the Canvas. This has happened on different gh definitions, different components (no consistent pattern noticed).
I might have had MetaHopper’s Bottleneck Navigator open at these occasions. At least it sometimes freezes when I try to close it (sorry if I make MH-BN look suspicions if it’s not the primary cause here but…).
I got a crash report from you on the 26th, with the following call-stack:
ntdll.RtlFreeHeap() in ntdll:0x81
ucrtbase.free_base() in ucrtbase:0x1b
opennurbs.ON_TextRun.Internal_Destroy() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_textrun.cpp:442
opennurbs.ON_TextRun.~ON_TextRun() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_textrun.cpp:429
opennurbs.ON_TextRunArray.Internal_Destroy() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_textrun.cpp:127
opennurbs.ON_TextContent.Internal_Destroy() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_text.cpp:37
opennurbs.ON_TextContent.~ON_TextContent() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_text.cpp:48
opennurbs.ON_TextContent.`vector deleting destructor'() in opennurbs:0x82
opennurbs.ON_Annotation.~ON_Annotation() in d:\buildagent\work\commercial\src4\opennurbs\opennurbs_annotationbase.cpp:90
rhcommon_c.ON_Text.`scalar deleting destructor'() in rhcommon_c:0x15
Some of our developers in Finland found a problem with how Rhino memory manages strings just a few days ago, and this definitely looks like a string problem. It’s being fixed as we speak, but I’m not sure when it’ll go out. I imagine as soon as possible, since this may well be responsible for many crashes all over the place.
This also seems to be part of a viewport redraw operation (which is indeed what happens after a selection change which is what happens after a window select), so that all adds up.
Oh an please do keep sending in those crash dump reports. The more likely it is we can figure out what went wrong, it also helps us determine which crashes are the most common and thus need the earliest attention.
It all goes into a database and similar reports get collated automatically. There is some extra work involved yes, but it helps us fix crash bugs and that’s supposed to be what we’re doing anyway.