Bad magic number for object. Object is likely destroyed.
You have a memory corruption. Memory has been corrupted.
This will be a secondary fault, and can happen some time after the primary fault. Look for errors earlier in the logs it is memory corruption, either due to a bug in the code or a machine fault.
Part of the code has been given a pointer to an internal data structure and that data structure should have a particular value at a particular offset, to confirm it is the right type of data structure. That has proved not to be the case.
This means that one of:
- the data structure has been overwritten whilst it is still active; - the code is still using a pointer to a data structure that some other part of the code has freed, because it thought it was no longer needed; - the code is using a pointer which itself has been overwritten.
atobj2 is a library that handles the allocation of memory for data structures and should do the reference counting needed to avoid freeing memory too soon.
A part of the RAM that is still in use has been overwritten by some other part of the code. This is a software bug (or less likely a hardware failure). It is one of the most difficult ones to diagnose, because the original fault can happen some time before the symptom presents.