Hangs when deleting objects

I missed a few WIP builds, but am now using build 5A851 and am getting some hangs at times when I didn’t used to get them. For example, I just saw this hang when deleting an block instance object in a document that has about 20 linked and embedded blocks.

The hang lasts for 10-20 seconds (on a few-year-old Mac Pro), and sampling Rhinoceros during the hang shows it spending time under:

1265 SelectionObserver::OnDeleteObject(CRhinoDoc&, CRhinoObject&) (in Rhinoceros) + 89 [0x106ff6ab9]
: 1265 -[NSNotificationCenter postNotificationName:object:userInfo:] (in Foundation) + 66 [0x7fff94b339d1]
: 1265 _CFXNotificationPost (in CoreFoundation) + 3140 [0x7fff91586634]
: 1265 CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER (in CoreFoundation) + 12 [0x7fff9169645c]
: 1264 ON_ClassArray::SetCapacity(int) (in Rhinoceros) + 19219 [0x107115003]
: | 1256 -[NSArrayController didChangeValuesForArrangedKeys:objectKeys:indexKeys:] (in AppKit) + 126 [0x7fff9550b5d6]
: | + 1256 -[NSController _notifyObserversForKeyPath:change:] (in AppKit) + 206 [0x7fff954aafa2]
: | + 1256 -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] (in Foundation) + 1142 [0x7fff94b78e96]
: | + 1256 NSKeyValueNotifyObserver (in Foundation) + 382 [0x7fff94b6e0f3]
: | + 1256 -[NSTextValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit) + 43 [0x7fff95562201]
: | + 1256 -[NSValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit) + 276 [0x7fff954b70af]
: | + 1255 -[NSValueBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] (in AppKit) + 302 [0x7fff954b7270]
: | + ! 1255 -[NSBinder valueForBinding:resolveMarkersToPlaceholders:] (in AppKit) + 164 [0x7fff954b3c46]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation) + 272 [0x7fff94b6791d]
: | + ! 1255 -[NSArrayController _singleValueForKeyPath:] (in AppKit) + 127 [0x7fff956c00ae]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation) + 324 [0x7fff94b67951]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKey:] (in Foundation) + 385 [0x7fff94b54c3b]
: | + ! 1255 CViewportPropertiesDlg::OnEnKillfocusERotation() (in Rhinoceros) + 13149 [0x10714dd97]
: | + ! 1253 rhInstanceArchiveFileStatusString(CRhinoInstanceDefinition const*, ON_wString&) (in Rhinoceros) + 186 [0x107152179]
: | + ! : 963 ON_CheckSum::CheckFile(__sFILE*, bool) const (in Rhinoceros) + 221 [0x107b11dd7]
: | + ! : | 963 ON_CRC32 (in Rhinoceros) + 42,35,… [0x107a40d8d,0x107a40d86,…]
: | + ! : 288 ON_CheckSum::CheckFile(__sFILE*, bool) const (in Rhinoceros) + 262 [0x107b11e00]
: | + ! : | 257 fread (in libsystem_c.dylib) + 48 [0x7fff9436cb90]

so it’s spending lots of time doing CRC checksumming (reading from disk) to update rhInstanceArchiveFileStatusString?

I’d rather not attach the model that causes this, but can submit privately if you need it for testing.

SimonSample of Rhinoceros.txt (131.9 KB)

Hi Simon- can you please zip & send the model to tech@mcneel.com

thanks,

-Pascal

Well, I cloned my model and all the associated files (linked and embedded from the main model), then tried to reproduced the hang and was unable to. I went back to the original model, and was unable to reproduce the hang there too.

However, I think there should be enough information in the sample attached to my first post to deduce what was going on. It kept hitting the disk to checksum the file for an embedded object, repeatedly for the same file.

Simon

This hang seems to have been fixed in the latest beta. I haven’t seen it again.

Simon