1. Open the
process browser and check if there are any runaway
processes, if so there must be an unconditional recursion somewhere
in your application. This can also happen if you have accidently
defined descriptions that depend on each other (reference
descriptions).
Uhhm, how do I see if a process is runaway? It has to be, as the
task manager shows 50% CPU use (dual core), and Mem usage keeps
growing. I have about 15 minutes to do something in the image before
it crashes.
I had a look at the image you provided and found the issue I
mentioned in the first mail:
1. Open the process browser and check if there are any
runaway
processes, if so there must be an unconditional recursion somewhere
in your application. This can also happen if you have accidently
defined descriptions that depend on each other (reference
descriptions).
In your case there was a process trying to validate descriptions that
circularly reference each other. Unfortunately Magritte does not
detect such situations automatically. I didn't look at your code, but
there are certainly different possibilities to solve the problem:
- Break circular references in your static or dynamic descriptions
explicitly (this is what I suggest and what I do in such cases)
- Change the validation implementation to not follow reference
descriptions or (better yet) implement it so that it doesn't validate
the same object multiple times.
PS: I will send you a link where you can download the working image
in private.
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch