Re: [Tracker] Avoid SQLite versions 3.7.10 - 3.7.13



On Thu, Oct 18, 2012 at 6:22 PM, Sam Thursfield <ssssam gmail com> wrote:
Hi!

A while back someone came on IRC saying they got a segfault when they
executed the following query:

tracker-sparql -q "SELECT rdf:type (?album)
                            ?album
                            tracker:id(?album) AS id
                            ?title
                            ?author
                            SUM(?length) AS duration
                            tracker:coalesce
(fn:year-from-dateTime(?date), 'Unknown')
                     WHERE {
                            ?album a nmm:MusicAlbum ;
                                   nie:title ?title;
                                   nmm:albumArtist [ nmm:artistName ?author ] .
                            ?song nmm:musicAlbum ?album ;
                                  nfo:duration ?length
                            OPTIONAL { ?song nie:informationElementDate ?date }
                     }
                     GROUP BY ?album
                     ORDER BY ?author ?title"

I traced it back to a then-unidentified bug in SQLite and then didn't
have time to take it further. There have been a couple of SQLite
releases since then and it turns out that 3.7.14 no longer has the
bug. The previous version that I tested which did not have the
segfault was 3.7.9.

So, formally: please do not use SQLite versions 3.7.10, 3.7.11, 3.7.12
or 3.7.13 with Tracker because you may trigger a bug in SQLite leading
to a crash in either the process running the query or the
tracker-store.

The release notes for SQLite 3.7.14 don't mention fixing of any kind
of segfault, incidentally, but from testing it's clear that the crash
is gone with that version.

I noticed that Fedora 18 is now shipping 3.7.13, and yet I'm not
experiencing the segfault. Looks like they found the root cause and
patched it themselkves:
https://bugzilla.redhat.com/show_bug.cgi?id=801981

So, my original diagnosis wasn't quite correct, which explains why I
couldn't correlate it with the SQLite release notes. In fact there's
some bug where SQLite breaks if malloc_usable_size() is used, at least
on Fedora. As of today Fedora are still carrying the patch, the bug I
linked to above makes no mention of reporting it upstream, and the
SQLite release notes show no mention of it being fixed.

I don't have time to investigate more now, but since we link to this
mail in the configure script I couldn't leave it uncorrected :)

Sam


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