[libvoikko] Workaround for a crash in libvoikko

Harri Pitkänen hatapitk at iki.fi
Mon Nov 14 21:34:46 EET 2011


On Monday 14 November 2011, Timo Jyrinki wrote:
> The workaround seems to fix the problem, so I applied that and
> uploaded to Debian.

Thanks for testing this. I have now (hopefully) identified and fixed the real 
bug in trunk:

  http://sourceforge.net/apps/trac/voikko/changeset/4052

The bug was not actually in the garbage collector but in a piece of code that 
tried to push a substring on the heap. The substring was defined using two 
pointers that pointed to a location in the Malaga heap.

If the heap happens to be full at that moment, allocating a new value on the 
heap requires compacting it first (which is what the garbage collector does). 
Now those pointers would no longer point to the original string when it was 
time to perform the actual copy-to-heap operation. This in turn lead to some 
random characters being copied there.

I will need to do more testing with this fix and also mail the fix to Björn 
Beutel. The bug is in original Malaga too although the code is a bit different 
there.

The workaround I sent yesterday is still perfectly valid. It should fix 99.99% 
of all crashes that could be caused by this bug. I'm not sure how common those 
crashes were before the fix but probably not horribly common.

Harri



More information about the Libvoikko mailing list