[redland-dev] redland rasqal datatype problem (bug?)

Sebastian Trüg strueg at mandriva.com
Fri Mar 21 17:34:43 GMT 2008


Nevermind.
Apparently one needs to create one world instance for each storage. At least 
that is what fixed the issue. I personally think this should be stated in the 
documentation. ;)

On Friday 21 March 2008 14:19:51 Sebastian Trüg wrote:
> Hi guys,
>
> I hope someone can shed some light on this problem I am having after
> parsing the RDF syntax data encoded in rdf+xml. The error I get on stderr
> is the following:
>
> node: Cannot encode a datatype URI string of 808595303 bytes length (error)
>
> I tracked it down to rdf_node.c. Attached you find the backtrace starting
> from a breakpoint at rdf_node.c where an invalid datatype uri causes a
> failure.
>
> This is the datatype uri (clearly invalid):
>
> $2 = {world = 0x772f2f3a70747468, string = 0x726f2e33772e7777 <Address
> 0x726f2e33772e7777 out of bounds>, string_length = 808595303, usage =
> 1479487793}
>
> which has been casted from a raptor_uri which is essentially a void
> pointer.
>
> I gave up tracking down the invalid datatype uri when it went into a raptor
> sequence. I just do not have enough insight on the code. Hopefully someone
> knows what this is about.
>
> I also ran it through valgrind but all I got is this invalid write which I
> could not make much of:
>
> ==1921== Syscall param pwrite64(buf) points to uninitialised byte(s)
> ==1921==    at 0x879B813: __pwrite_nocancel (in /lib64/libpthread-2.6.1.so)
> ==1921==    by 0x12C22B81: __os_io (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12C1231E: (within /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12C12534: __memp_bhwrite (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12C1DF0F: __memp_sync_int (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12BC6E4A: __db_sync (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12BD5DC6: __db_sync_pp (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12929B1D: librdf_hash_bdb_sync (rdf_hash_bdb.c:996)
> ==1921==    by 0x1290B316: librdf_hash_sync (rdf_hash.c:1104)
> ==1921==    by 0x12919013: librdf_storage_hashes_sync
> (rdf_storage_hashes.c:1684)
> ==1921==    by 0x12914941: librdf_storage_sync (rdf_storage.c:1586)
> ==1921==    by 0x12910C26: librdf_model_storage_sync
> (rdf_model_storage.c:549) ==1921==  Address 0xf745008 is 3,200 bytes inside
> a block of size 4,183 alloc'd
> ==1921==    at 0x4C226AC: malloc
> (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
> ==1921==    by 0x12C208EB: __os_malloc (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12BE8843: __db_shalloc (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12C109EE: __memp_alloc (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12C1306B: __memp_fget (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12B6E201: __bam_get_root (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12B6E557: __bam_search (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12B5F3E8: (within /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12B60953: (within /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12BCDC1E: __db_c_get (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x12BD8C6D: __db_c_get_pp (in /usr/lib64/libdb-4.5.so)
> ==1921==    by 0x129292FC: librdf_hash_bdb_cursor_get (rdf_hash_bdb.c:492)
>
>
> Thanks a lot,
> Sebastian Trüg




More information about the redland-dev mailing list