On 11/21/2018 11:01 PM, Benjamin Stadin wrote:
Hi,
I've forked libgpkg on Github to merge fixes from other repositories and update
the embedded SQLite (was at 3.8.). Though in the RTREE tests I get a 'database
table is locked' error for the update statements (see exact error message
below). I ran the tests manually in the gpkg shell and could not reproduce the
issue for the same sequence of commands. The tests are written in ruby, which
could explain the different behaviour.
I tried different versions of SQLite and can confirm the RTREE tests for SQLite
versions prior to 3.24.0 succeed (tested with 3.23.1 and 3.19.3). All recent
versions break tests with mentioned error (tested versions include 3.24.0,
3.25.0, 3.25.3, current snapshot).
As of 3.24.0, rtree prevents you from writing to a table while the same
connection has an active SELECT on the same table. More detail in this
thread:
http://sqlite.1065341.n5.nabble.com/3-24-database-table-is-locked-td102856.html
Dan.
To reproduce the issue:
- Clone the repository at https://github.com/benstadin/libgpkg
- Configure with tests and RTREE:
cmake -DCMAKE_BUILD_TYPE:STRING=Release -DGPKG_TEST:BOOL=on
-DSQLITE_ENABLE_RTREE=1 .
- Build
make
- Run the tests with detailed error messages:
make CTEST_OUTPUT_ON_FAILURE=1 test
Cheers
Ben
Error message:
1) CreateSpatialIndex should create working spatial index
Failure/Error: expect("UPDATE test SET geom = GeomFromText('POINT(2 2)') WHERE
id = 1").to have_result nil
expected UPDATE test SET geom = GeomFromText('POINT(2 2)') WHERE id = 1
to have result nil but raised error 'database table is locked'
# ./rtree_spec.rb:41:in `block (2 levels) in <top (required)>'
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users