Greetings.

I've been developing against the librdf library (redland 1.0.10 on OS X 10.6), 
and have just started to get messages about an assertion error:

rdf_list.c:110: (librdf_free_list) assertion failed: Iterators were active on 
freeing list

(this doesn't cause a crash or anything, but the library is clearly unhappy 
about things)

It's not completely clear from the message what this is trying to tell me, but 
a little burrowing with the debugger tells me it's happening within 
librdf_storage_close:

#0  0x0141482f in librdf_free_list ()
#1  0x01423354 in librdf_storage_list_close ()
#2  0x01415c07 in librdf_storage_close ()
#3  0x014115d6 in librdf_model_storage_destroy ()
#4  0x0140e92f in librdf_free_model ()
[...]

Looking at the corresponding source, it appears to be associated with my 
freeing a storage object before I've freed an iterator over the storage object.

I can see that this might plausibly be regarded as a programming error on my 
part, but in this case it's happening within the exit handler of a 
garbage-collected system (in a binding to mzscheme, in fact), so that (a) I 
genuinely do want everything to be shut down neatly, now, no questions asked, 
and (b) it rapidly gets messy trying to enforce an order on librdf_free_* calls 
at this stage.

So, my questions: 

  * Is this analysis correct?
  * Is there anything I can do about it at present? (short of embarking on a 
potentially errorprone fandango over objects to impose a shutdown order in the 
exit handler)
  * If not, does this sound like a plausible enhancement request?  It would 
suit _me_ very well if closing the storage object simply blew away the 
un-emptied iterator objects, rather than objecting to them.  Also, the storage 
object isn't documented as holding on to the iterator objects that are related 
to it, so I wouldn't have been able to know to avoid this from the API docs.

Thanks for any advice.

Best wishes,

Norman


-- 
Norman Gray  :  http://nxg.me.uk



_______________________________________________
redland-dev mailing list
[email protected]
http://lists.librdf.org/mailman/listinfo/redland-dev

Reply via email to