[redland-dev] Possible problem in "tree" storage implementation. librdf_avltree_delete()

Aymeric Barthe aymeric.barthe at thomsonreuters.com
Wed Sep 24 11:46:48 CEST 2008


We have a tool using librdf and we recently switched to the experimental
"tree" storage. We have a small rdf database of roughly 200kb that fits
in memory. We make a lot of SPARQL requests and some changes
(add/delete) in the db. We found out that "tree" provides a real
performance boost for our application.

However we have encountered some crashes. I can't provide you with a
sample of code that can reproduce the crash yet, but after investigation
I suspect the librdf_avltree_delete().

The problem is the following. After calling librdf_avltree_delete() (via
librdf_model_remove_statement()) we end up with a corrupted (SPO) tree
in memory. What happens is that the parent of some child node (right or
left) points to an incorrect memory location. 

Basically we end up with (node->left->parent != node) or
(node->right->parent != node).

Have any of you experienced similar troubles with the avl tree storage?
Is this a known problem? If not, I hope to pursue my investigation and
possibly provide a patch on next week. Any idea/advice of how I could
approach the issue? 

Kind Regards,

Aymeric Barthe 
Thomson Reuters



This email was sent to you by Thomson Reuters, the global news and information company.
Any views expressed in this message are those of the individual sender, except where the sender specifically states them to be the views of Thomson Reuters.




More information about the redland-dev mailing list