[Rhythmbox-devel] Problems with tree DB and libgda


Running both pre-compiled and self-compiled versions of Rhythmbox 0.11.2 on 32-bit Ubuntu, I get random crashes while playing songs, often while changing songs. I decided to dump a couple of cores, and found the crashes all occurred in the same place:

Program terminated with signal 11, Segmentation fault.
#0  0x080c275e in save_entry (db=0x8220020, entry=0x85fd670, ctx=0xb28fd34c)
   at rhythmdb-tree.c:858
858 encoded = xmlEncodeEntitiesReentrant (NULL, BAD_CAST entry->type->name);

entry->type had a value of zero, meaning this was a null pointer dereference. Whoops. I can give an stack trace )or the entire core) if you need it, but the call chain appeared to be an attempt to write the database of stuff to an XML file.

Not able to follow all the code logic back to where entry->type was set, and not knowing enough about the code to insert a hack like setting it to ENTRY_TYPE_INVALID if it was zero, I decided to try change databases. I tried recompiling with libgda support instead. The result was dozens of compiler errors. Most were due to what I would call an outdated interface (someone massively changed the rhythmDB interface and forgot to update rhythmdb-gda.c and .h files). One, to my surprise, was due to an outright typo (a declaration of type G_OJECT_SOMETHING instead of G_OBJECT_SOMETHING).

Three questions:

1. Is my crash a known bug?
2. Can I fix it with a simple hack (like ENTYR_TYPE_INVALID)?
3. Is libgda even supported?

Thanks in advance.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]