ysbaddaden / gc

A garbage collector for Crystal
93 stars 5 forks source link

Assertion error while allocating #31

Open ysbaddaden opened 1 month ago

ysbaddaden commented 1 month ago
lavinmq: include/block.h:133: Line_update: Assertion `Block_contains(block, (char *)object)' failed.
[1]    309599 IOT instruction (core dumped)  bin/lavinmq --config config.ini

Refs https://github.com/cloudamqp/lavinmq/pull/732

ysbaddaden commented 1 month ago

Surprisingly this happens while allocating an object into a block.

Either of LocalAllocator_tryAllocateSmall() or LocalAllocator_overflowAllocateSmall() is calling Line_update(block, object) while object isn't within the block's bounds :raised_eyebrow:

That should be impossible, of course. Unless the cursors went wrong in LocalAllocator for some reason?