Closed Bug 1162643 (SQLite3.8.10.1) Opened 9 years ago Closed 9 years ago

Upgrade to SQLite 3.8.10.1

Categories

(Toolkit :: Storage, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox41 --- fixed

People

(Reporter: RyanVM, Assigned: RyanVM)

References

()

Details

Attachments

(1 file, 2 obsolete files)

SQLite Release 3.8.10 On 2015-05-07

* Added the sqldiff.exe utility program for computing the differences between two SQLite database files.
* Added the y format string to the matchinfo() function of FTS3.
* Performance improvements for ORDER BY, VACUUM, CREATE INDEX, PRAGMA integrity_check, and PRAGMA quick_check.
* Fix many obscure problems discovered while SQL fuzzing.
* Identify all methods for important objects in the interface documentation. (example)
* Made the American Fuzzy Lop fuzzer a standard part of SQLite's testing strategy.
* Add the ".binary" and ".limits" commands to the command-line shell.
* Make the "dbstat" virtual table part of standard builds when compiled with the SQLITE_ENABLE_DBSTAT_VTAB option. 

Richard, we recently upgraded to 3.8.9 across a number of older releases in order to pick up the fuzzing fixes it contained. Is it worth taking this release across all of them too?
Flags: needinfo?(drh)
The 3.8.10 does fix several arcane bugs (mostly assertion faults) that the AFL fuzzer picked up.  But none of this are important to FF, I don't believe.

On the other hand, the reason we released 3.8.10 early in the first place is to provide the SQLITE_ENABLE_DBSTAT_VTAB compile-time option, for the DBSTAT virtual table, which Ben Turner wants to use in order to derive better estimates on when a VACUUM of the IndexedDB data would be helpful.

Also, the performance improvements result in about 7.5% fewer CPU cycles for our tests.
Flags: needinfo?(drh)
OK, sounds like we can just land it on mozilla-central and let it go through the regular release process then. Thanks!
And we need to add the SQLITE_ENABLE_DBSTAT_VTAB define to our build config.
Comment on attachment 8602878 [details] [diff] [review]
Upgrade to SQLite 3.8.10

This will need another sqlite3_compileoption_used check in configure.in
Ugh.  In the rush to get the release out, we failed to add SQLITE_ENABLE_DBSTAT_VTAB to the sqlite3_compileoption_used() method.  Bummer.  Does that throw a wrench into things?
(In reply to D. Richard Hipp from comment #6)
> Ugh.  In the rush to get the release out, we failed to add
> SQLITE_ENABLE_DBSTAT_VTAB to the sqlite3_compileoption_used() method. 
> Bummer.  Does that throw a wrench into things?

Oh, hm. Well, I guess we can test for it some other way?
You mean test at run-time?  Just run:  "CREATE VIRTUAL TABLE temp.dbstat USING dbstat;"  If it works, then SQLITE_ENABLE_DBSTAT_VTAB is on.  If it fails, then it isn't.
(In reply to D. Richard Hipp from comment #8)
> You mean test at run-time?

Well, sorta. We need to test it at configure time (that's half run-time and half build-time!). We need to make sure that any system-supplied sqlite was built with SQLITE_ENABLE_DBSTAT_VTAB, otherwise we make the build fail.
would it be a big deal to release a 3.8.10.1 with updated sqlite3_compileoption_used?

Fwiw, we could even take a patched 3.8.10, if the same fix will be in the next Sqlite release.
We don't usually patch Sqlite, but it's ok to do that when there's already a fix upstream that is riding the train to the next release.
oh wait, that wouldn't do for system sqlite, nevermind.
Mak, the updated configure.in changes I attached allow us to detect this without sqlite3_compileoption_used support, so we don't really need a new version, right?
Flags: needinfo?(mak77)
I saw that, it is still far more complex than it would be with proper sqlite3_compileoption_used support.
So I'm asking what's the price to have that fixed in a .1 version, to compare that with the price of this more complex check that regardless we should replace as soon as we get a fixed sqlite3_compileoption_used. If it's easy to get .1 version I don't think it's worth the workaround and fullow-up bug to remove it.
Flags: needinfo?(mak77)
SQLite version 3.8.10.1 is a patch release that fixes sqlite3_compileoption_used() so that it reports on SQLITE_ENABLE_DBSTAT_VTAB as it should.
(In reply to D. Richard Hipp from comment #16)

Thanks!
Alias: SQLite3.8.10 → SQLite3.8.10.1
Summary: Upgrade to SQLite 3.8.10 → Upgrade to SQLite 3.8.10.1
Comment on attachment 8604193 [details] [diff] [review]
Upgrade to SQLite 3.8.10.1

Review of attachment 8604193 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks!
Attachment #8604193 - Flags: review?(mak77) → review+
https://hg.mozilla.org/mozilla-central/rev/c6ea21c091e9
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Depends on: SQLite3.8.10.2
No longer depends on: SQLite3.8.10.2
SQLite 3.8.10.2 was released on the 5/20/2015 with the below fix being the only update:

- Fix an index corruption issue introduced by version 3.8.7. An index with a TEXT key can be corrupted by an INSERT into the corresponding table if the table has two nested triggers that convert the key value to INTEGER and back to TEXT again. Ticket 34cd55d68e0
(In reply to Arthur K. from comment #22)
> SQLite 3.8.10.2 was released on the 5/20/2015 with the below fix being the
> only update:
> 
> - Fix an index corruption issue introduced by version 3.8.7. An index with a
> TEXT key can be corrupted by an INSERT into the corresponding table if the
> table has two nested triggers that convert the key value to INTEGER and back
> to TEXT again. Ticket 34cd55d68e0

Ugh, sorry for the churn. Saw too late that this was already reported.
No longer blocks: SQLite3.8.9
Depends on: SQLite3.8.9
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: