> "Bert Huijben" <bert_at_qqmail.nl> writes:
>
>> You get in this branch if a previous atomic initialization call failed: the
>> callback function failed and returned an error. This result is then ignored
>> in some code paths.
>>
>> It is most likely not caused by the atomic operations failing itself, but
>> more likely by an initialization error in a third party library.
>
> Ah, yes! When we first open/read the rep-cache during the commit the
> failure is not treated as a hard error. The subsequent open in the
> post-commit then returns the atomic error.
>
> If the rep-cache has been setup you should see:
>
> $ sqlite3 repo/db/rep-cache.db "select * from sqlite_master"
> table|rep_cache|rep_cache|3|CREATE TABLE rep_cache ( hash TEXT NOT NULL PRIMARY KEY, revision INTEGER NOT NULL, offset INTEGER NOT NULL, size INTEGER NOT NULL, expanded_size INTEGER NOT NULL )
> index|sqlite_autoindex_rep_cache_1|rep_cache|4|
>
> I suspect you will see no output because init_sqlite has failed.
>
> I see you are using --with-sqlite=/usr/local. Did you build sqlite with
> thread support? We should check which sqlite is being picked at
> runtime: either use "ldd executable" or identify the process ID and grep
> through /proc/NNN/maps, look libsqlite.
The sqlite command worked (I see the expected output), but I suspect that's because the rep-cache.db file was already there (since 1.6.12). If I move it, though, the file is NOT recreated.
greping through /proc/xxx/maps gives me the following:
2a96fc4000-2a97058000 r-xp 00000000 08:01 18104376 /usr/local/lib/libsqlite3.so.0.8.6
2a97058000-2a97158000 ---p 00094000 08:01 18104376 /usr/local/lib/libsqlite3.so.0.8.6
2a97158000-2a9715c000 rw-p 00094000 08:01 18104376 /usr/local/lib/libsqlite3.so.0.8.6
sqlite was built with default options, but "--enable-threadsafe" defaults to "yes" if it's not used, so I guess it *is* built with thread support?
Received on 2011-11-16 17:10:46 CET