Previous versions of Rhinoceros 8?

Hi,

I’m experiencing memory bugs with Curve.CreateBooleanUnion and seemingly with Curve.CreateBooleanDifference. Rhino spikes in memory usage up to 60 GB of RAM where either Visual Studio stops the debugging process with the out of memory error message (I’m developing a plugin for grasshopper) or I’m having errors with trying to write in a memory location without permission, or entire OS breaks due to lacking memory to operate any further.

My classes that used to work 3 months ago using BooleanOperations on similiar sets of data, now cause those problems so I suspect something else (most likely Rhino) changed in the meantime.

I’m most interested in version 8.6.24101.5001 from 10.04.2024 cause this is the oldest one I know my classes worked.

Hey @Mikolaj_Kubiak, thanks for reporting this.

I can DM you a previous version. If you can give us some code we can also try to reproduce on our end and if so fix any bugs.

DMing this version would work great.

About the code, it works just fine most of the time(though I can see boolean operation consume quite much memory on their own in the C++ native code), but I have some cases where 100% of a time they cause troubles with memory. Boolean operations look like that:

        var polylinesUnion = Curve.CreateBooleanUnion(curves.Select(object => object.ToPolylineCurve()), 0.001).First();

So I’m passing an IEnumerable with precission 0.001, when there is trouble it is very characteristic every time. The thread hangs in the method for a long time, sometimes even over 20 minutes and more, then suddenly memory usage spikes until something mentioned before happens, usually VS stops the process informing that the debug run out of memory, sometimes I get an error on the line I shared above saying “Attempted to read or write protected memory. This is often an indication that other memory is corrupt”, sometimes just “Out of memory exception” on this line and sometimes entire OS breaks due to lack of free RAM

It would be very good if you could provide us with some code and a model that lets us test this.

Will this code and a provided model provide the errors you’re mentioning?

I’m somewhat busy with the development in upcomming weeks, so I likely won’t find time to make a neat reproduction case for you.

Thing is, it happens after some really deep transformations on the input geometry, and I would have to spent quite some time to catch the exact polylines that go into the CreateBooleanUnion function that break it.

However if I won’t find a way around this bug or if I find the time, I will surely try to catch it and give it to you.

The code is like I gave it (with changed name only). It was basically breaking trying to create boolean union of 20 or so rectangular polylines, though I do not have time to find the exact points for them right now :frowning:

Let us know if you can get us something, we like fixing bugs :partying_face: , good luck with your busy development schedule :slight_smile:

1 Like