[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Failed fs-test 65 (Was: Re: 1.9.5 up for signing/testing)

From: Branko Čibej <brane_at_apache.org>
Date: Thu, 24 Nov 2016 10:15:27 +0100

On 24.11.2016 00:05, Evgeny Kotkov wrote:
> Branko Čibej <brane_at_apache.org> writes:
>
>> It is reproducible whether run as a single test, all of fs-test or the
>> whole test suite; but only with SQLite 3.8.10.2. I suspect it is a test
>> bug, but haven't followed up; could be due to a bug in SQLite itself,
>> e.g., that the older version returns the wrong error code.
>>
>> The only potential problem as far as I can see is that 3.8.10.2 is the
>> version of SQLite shipped with OSX — hence, the version that most
>> binaries will be linking with.
> Well, it gets interesting.
>
> I can reproduce the failure under OS X 10.11 with bundled SQLite 3.8.10.2.
> However, this failure is specific to SQLite that is shipped with OS X.
> Official versions (including 3.8.10.2 from [1]) return SQLITE_BUSY,
> as promised in the documentation, and the test passes.
>
> `dtrace` shows that the version shipped with OS X is heavily patched.
> There's a different syscall pattern: guarded_open_np/guarded_pwrite_np/
> guarded_close_np instead of open/write/close, pread instead of lseek+read,
> different fcntl calls, etc. The sqlite3.h headers are also a bit different.
>
> I would guess that SQLite version shipped with OS X has a custom VFS
> implementation, which doesn't keep some of the promises of the official
> version, or contains a bug that results in an I/O error instead of expected
> SQLITE_BUSY error.
>
> Could you please confirm this by running the test with the official 3.8.10.2
> from [1]?
>
> [1] https://sqlite.org/2015/sqlite-amalgamation-3081002.zip

Indeed, fs-test passes with the stock SQLite. Running all the tests now
just to make sure there's no quirk elsewhere.

To be quite candid, I'm not surprised ... this wouldn't be the first
time that Apple messed up its patches of perfectly good upstream
software. :(

The question is: what do we do about it? Complaining to Apple isn't
likely to help. We could add a special case in the testcase for that
version of SQLite on OSX, just to keep the test output in the green. But
... that seems like just a bit overdone.

-- Brane
Received on 2016-11-24 10:15:38 CET

This is an archived mail posted to the Subversion Dev mailing list.