On Wed, 14 Apr 2021 14:04:33 +0000 Ray Dillinger <b...@sonic.net> wrote:

>
> Warning, a coredump from this system would be immense.  Or, well anyway
> pretty darn large.  The machine has over 64G of RAM memory installed and
> openuniverse seems to expand to fill available space. I could make a VM
> with artificially small memory to produce a more manageable coredump,
> but I wonder whether a VM environment would tickle the spot that
> provokes this bug.


Testing in a VM with a more reasonable 6GB apparently does not provoke
the crash.  It doesn't fix the interface issues, but it doesn't outright
crash.

But, in light of that fact, the clues seen so far point in one
direction, and if I'm right about it the backtrace probably wouldn't
even be relevant to finding the problem. 


Consider the facts:

I have a system with an unusual amount of memory.  I see Openuniverse
expand to fill available memory and then crash.  The crash happens at an
instruction to allocate memory.  A virtual machine with a less-unusual
amount of memory doesn't provoke this crash.


Admittedly not very much to go on but what do these clues add up to?

I have not even looked at the source code of openuniverse, but this is
pretty clearly a memory management bug, and I have a fairly solid
theory/guess as to what kind.  Managing memory in big chunks can provoke
flawed applications to fail in at least three ways they don't fail when
managing memory in smaller chunks:


First, by extending the time between deallocations and allocations
(giving other applications time to allocate and spoil memory
availability, provoking a crash on the next allocation).

Second, by provoking the allocation of proportional size buffers while
deallocating on criteria not sufficient to ensure that such a large
buffer remains available, again provoking a crash on the next allocation.

Third, by some static structure that keeps track of pointers to
allocated memory having a finite limit that is exceeded - resulting in a
buffer with an overwritten or unrecorded pointer, provoking a memory leak.


Although this theory may be incorrect, these are at the very least the
first "obvious" places to look.


Bear

Reply via email to