Editing external linked block causes 100% CPU load

It happens since years, that Rhino for Mac is going to a 100% CPU load. Sometimes these strange bugs get fixed, but as we can see in the screenshot below, it now happened again.

I already had many discussions about this problem and each time it was a big hassle to find the source of the problem. Over the years I have invested hours just for this specific bug (strange 100% CPU usage for no reason) Now I have an idea / question:

Would it be possible to have a trace command in order to quickly find what process is causing the usage, similar to the activity monitor?

Regarding the problem itself: I just opened a file with some blocks and double-clicked one of the blocks.

I have posted my system info already 100 times, but here it is:

Rhino 8 SR7 2024-5-7 (Rhino 8, 8.7.24128.12262, Git hash:master @ 8bdee88d60977877d72ecc80dd756656929e0efb)
License type: Educational, build 2024-05-07
License details: Cloud Zoo

Apple macOS Version 14.4.1 (Build 23E224) (Physical RAM: 16GB)
Mac Model Identifier: MacBookPro16,1
Language: en
.NET 7.0.0

Metal GPU Family Apple 0
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
  Intel UHD Graphics 630 (1536 MB)
  AMD Radeon Pro 5300M (4 GB)
    Color LCD (2048 x 1280 @ 59.00Hz)

USB devices
  Apple: composite_device
  Apple Inc.: Touch Bar Backlight
  Apple Inc.: Touch Bar Display
  Apple Inc.: Apple Internal Keyboard / Trackpad
  Apple: Headset
  Apple Inc.: Ambient Light Sensor
  Apple Inc.: FaceTime HD Camera (Built-in)
  Apple Inc.: Apple T2 Controller

Bluetooth devices
  None

Third party kernel extensions
  com.intel.driver.EnergyDriver (3.7.0) 35E739F9-BF6C-3024-A67C-750711B3FB64
  com.Cycling74.driver.Soundflower (2) 2D779840-7439-31E5-8A66-D786C3F47B75
  com.paragon-software.filesystems.ntfs (149.8.15) B3791A17-53DF-3B03-9FF5-298D092ECF8C

Third party plugins
  /usr/lib/swift/libswiftCore.dylib
  /usr/lib/swift/libswiftCoreFoundation.dylib
  /usr/lib/swift/libswiftCoreGraphics.dylib
  /usr/lib/swift/libswiftCoreImage.dylib
  /usr/lib/swift/libswiftDarwin.dylib
  /usr/lib/swift/libswiftDispatch.dylib
  /usr/lib/swift/libswiftIOKit.dylib
  /usr/lib/swift/libswiftMetal.dylib
  /usr/lib/swift/libswiftOSLog.dylib
  /usr/lib/swift/libswiftObjectiveC.dylib
  /usr/lib/swift/libswiftQuartzCore.dylib
  /usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
  /usr/lib/swift/libswiftXPC.dylib
  /usr/lib/swift/libswift_Concurrency.dylib
  /usr/lib/swift/libswiftos.dylib
  /usr/lib/swift/libswiftsimd.dylib
  /usr/lib/swift/libswift_StringProcessing.dylib
  /usr/lib/swift/libswift_RegexParser.dylib
  /Library/Frameworks/3DconnexionClient.framework/Versions/A/3DconnexionClient
  /usr/lib/swift/libswiftCryptoTokenKit.dylib
  /usr/lib/usd/libusd_ms.dylib
  /usr/lib/swift/libswiftCoreAudio.dylib
  /usr/lib/swift/libswiftCoreLocation.dylib
  /usr/lib/swift/libswiftCoreMedia.dylib
  /usr/lib/swift/libswiftCompression.dylib
  /usr/lib/swift/libswiftCoreMIDI.dylib
  /usr/lib/swift/libswiftAVFoundation.dylib
  /usr/lib/swift/libswiftCoreML.dylib
  /usr/lib/swift/libswiftFileProvider.dylib
  /usr/lib/swift/libswiftIntents.dylib
  /usr/lib/swift/libswiftAccelerate.dylib
  /usr/lib/swift/libswiftGLKit.dylib
  /usr/lib/swift/libswiftGameplayKit.dylib
  /usr/lib/swift/libswiftMetalKit.dylib
  /usr/lib/swift/libswiftModelIO.dylib
  /usr/lib/swift/libswiftSceneKit.dylib
  /usr/lib/swift/libswiftSpriteKit.dylib
  /usr/lib/swift/libswiftVision.dylib
  /usr/lib/swift/libswiftRegexBuilder.dylib
  /usr/lib/swift/libswiftDemangle.dylib
  /usr/lib/swift/libswiftShazamKit.dylib
  /usr/lib/swift/libswiftObservation.dylib
  /usr/lib/swift/libswiftVideoToolbox.dylib
  /usr/lib/swift/libswiftWebKit.dylib
  /usr/lib/swift/libswiftNaturalLanguage.dylib
  /usr/lib/swift/libswiftSystem.dylib
  /usr/lib/swift/libswiftMapKit.dylib
  /usr/lib/log/liblog_network.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libkaramba.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libiomp5.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libmetis.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libarpack.2.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libc++.1.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libopenblas-r1.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libgfortran.5.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libgcc_s.1.1.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libquadmath.0.dylib
  /Users/rudolfneumerkel/Library/Application Support/McNeel/Rhinoceros/packages/8.0/Karamba3D/2.2.0.161/libs/libc++abi.1.dylib


Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
  /Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework	"Renderer Development Kit"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp	"Commands"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp	"Snapshots"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp	"RhinoCodePlugin"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp	"RDK_EtoUI"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp	"MeshCommands"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/BlockEdit.rhp	"BlockEdit"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp	"Rhino Render"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp	"RhinoCycles"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/PlugIns/AnimationTools.rhp	"AnimationTools"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp	"SectionTools"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/RhinoRender.rhp	"Legacy Rhino Render"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/export_ACAD.rhp	"AutoCAD file export : export_ACAD"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp	"Displacement"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/import_STEP.rhp	"STEP Import"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/import_ACAD.rhp	"AutoCAD file import: import_ACAD"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp	"PanelingTools"	8.7.24128.1002
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp	"IronPython"	8.7.24128.12262
  /Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp	"Grasshopper"	8.7.24128.12262


update: the 100% CPU load is stopped as soon as the second Rhino session, that is opened due to the opened block is closed again! @dan

Completely easy to reproduce:

Open the testFile, where testCube is linked as a block. Then double-click the block to edit in a new file. CPU load will go to 100%.

@dan

testFile.3dm (2.4 MB)

testCube.3dm (2.4 MB)

it gets worse: clicking objects in opened linked block files does not trigger the properties panel:

Thanks for reporting this Rudi! Those easy-to-reproduce ones are the best kind. Appreciate the clarity of the report. I’ve added this to the pile to look investigate:

RH-81972 Opening Linked Block causes CPU load to go to 100%

Thanks Dan, please dont forget this one as well

Hi @rudolf.neumerkel,

I see the high CPU usage when block editing. Just curious - what problem is this causing for you?

Thanks,

– Dale

It’s making my Intel MacBook Pro very hot and kicks on the fans for no reason.

It disturbs the silence I like to work in as well.

It drains battery life.

It doesn’t do this in Windows Rhino…

The slowdown appears to be in our effort to disable the source document and any associated UI.

– Dale

I guess this is an easy fix?

@rudolf.neumerkel - I don’t know enough yet to give a good answer.

– Dale