Hi guys !

so I completely removed the OneLevelIndex from the server. The branch (index) has been successfully merged back into trunk, and I will now work on removing the SublevelIndex from the index branch.

In the process, I spent 3 days closing all the cursors that weren't closed after having been used. This was *BORING*. In the future, I would really appreciate if those who use the cursors double check that they have closed them.

To do that, I added some logs in every cursor constructor and every close() method, and matched the opens with the closes. Do'nt ask me if this was fun to match them... I created a small program which was able to do that for me, but this is not enough to know that a cursor has been created but not closed, we also have to know where it has been created.

I think we should add some mechanism in the server to check that automatically, to avoid doing it by hand (there are hundreds of tests to check...). One solution would be to keep a track of every cursor construction in a HashMap, and to remove them when the cursor is closed. The remaining cursors are likely not closed. The pb is that it gives no clue about where those cursors have been created, unless we associate a stackTrace to this information. Really not possible in production, but we might add an extended request to activate this mode, or a flag in the config.

If anyone has a better idea ?

Thanks !


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to