> "Bert Huijben" <b...@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?

Reply via email to