Rhino 6 / Grasshopper - Crashing with Honeybee

Hi @Prethvi ,

There’s only so much that we can do if your IT insists on using settings for the antivirus software that cripple the usability of your computer. It looks like @Paul1 said that they also modified some settings for error suppression:

Has your IT also tried this?

Hi @chris @mostapha ,
Finally, the IT team turned off Sentinel One. The Honey bee components are working again.

1 Like

Just as a note for future users that encounter this… the problem is related to method 1 uuid1() in uuid.py as it accesses the mac address.

Honeybee doesn’t actually require uuid1() method of generating guids, and it uses uuid4.

If you modify the uuid.py in the Rhino/plugins/ironpython/lib folder … comment out or delete the code related to scanning and accessing the address and just leave random inside the uuid1() def instead. The script wouldn’t need to attempt to call this.

and placing components should now be possible again
image

NOTE reinstalling Rhino will reinstall the uuid.py so it would be good if Honey bee made an adjustment to avoid importing all of uuid.py

1 Like

so basically changing the def uuid1() to only use a random generation for the node component, and removing the defs above related to getnode will form a valid guid in accordance with RFC4122, but not affect Honey bee anyway since it calls uuid4()

To check the change to the uuid.py file works, just place a ghpython component on the canvas like this

Hey @JulesBuh ,

Thanks for the insight here. You are correct that we only ever use uuid4 in Ladybug Tools but I’m afraid that editing the IronPython UUID is probably not an ideal solution for all users if they have some other plugin that is actually using this function.

Can you do one more test for us to see if this gets around your issue? If it does, then I’ll implement it across Ladybug Tools so that no one has to deal with this antivirus issue. The test is to type the following into a GHPython component while having the original uuid1 function installed:

from uuid import uuid4
print(uuid4())

If I am right, this should only import the uuid4 function from the module and we might be able to avoid importing uuid1. If this is successful on your machine, then I’ll replace all of our uuid import statements across Ladybug Tools with this.

Hello @chris ,

I came across this thread while trying to solve the same error conflict with SentinelOne. I don’t know if you ever got an answer on the test you described above. I tried this on my computer which is experiencing the same issue OP was experiencing. Unfortunately the above test does result in Rhino crashing. Do you have any other thoughts on how to possibly work around this? We are also working on finding a way that does not involve changing the uuid function for the sake of company wide distribution.

thanks,
Wade

@WadeV ,

If you go to the other post that I linked to earlier in this thread, it seems that some users have been able to resolve the issue by changing the Sentinel One settings instead of just turning it off entirely: