Stefan Sperling wrote:
> On Sat, Oct 29, 2011 at 06:45:50AM -0500, Jonathan Nieder wrote:

>> [[[
>> The actual ABI compatibility of sqlite3 doesn't depend on the patchlevel
>> (the x in 3.7.x), so stop being picky about the patchlevel when checking
>> the version number at runtime.  This avoids spurious errors of the form
>> "svn: Couldn't perform atomic initialization" / "svn: SQLite compiled
>> for 3.7.4, but running with 3.7.3" when sqlite gets a minor update
>> without Subversion being rebuilt to match.
>
> Shouldn't the version numbers in your example be the other way around?

No, my description was just bogus.  This is not about when sqlite gets
a minor update, but rather when either

 A. sqlite gets downgraded in a minor way, or, more likely,
 B. subversion is installed using pre-built binaries that were built
    against a slightly newer version of sqlite.

>> --- subversion/libsvn_subr/sqlite.c  (revision 1194866)
>> +++ subversion/libsvn_subr/sqlite.c  (working copy)
>> @@ -606,7 +606,7 @@ static volatile svn_atomic_t sqlite_init_state = 0
>>  static svn_error_t *
>>  init_sqlite(void *baton, apr_pool_t *pool)
>>  {
>> -  if (sqlite3_libversion_number() < SQLITE_VERSION_NUMBER)
>> +  if (sqlite3_libversion_number()/1000 < SQLITE_VERSION_NUMBER/1000)

This test was already a '<' rather than '!=' so minor sqlite updates
were already handled fine.

Thanks for the sanity check.  I'll sleep on this for now, planning to
resend with a new log message and some other tweaks tomorrow.

Reply via email to