Closed karlwettin closed 8 years ago
So I cloned the (this) repo and compiled on the same Debian Sid. Still no luck. Even the built in test case fails with pretty much the same error:
osm@coastlines:~/osmcoastline/build$ ./runtest.sh
Enabled debug option
[ 0:00] Using SRS 4326 for output. (Change with the --srs/s option.)
[ 0:00] Writing to output database 'testdata.db'. (Was set with the --output-database/-o option.)
[ 0:00] Removing database output file (if it exists) (because you told me to with --overwrite/-f).
[ 0:00] Will create geometry index. (If you do not want an index use --no-index/-i.)
Warning 6: driver SQLite does not support creation option OGR_SQLITE_SYNCHRONOUS
ERROR 1: Transaction already established
terminate called after throwing an instance of 'gdalcpp::gdal_error'
what(): starting transaction on layer 'error_lines' failed
Aborted
osm@coastlines:~/osmcoastline/build$
Please advice.
This is probably due to changes in how transactions are handled between gdal 1 and gdal 2. In gdal 1 transactions are per layer, in gdal 2 per datasource. I have to look at the details and find the best way to fix this. For the time being I suggest you just remove the code related to transactions. Without transactions it will work fine, just be a bit slower.
On a brand new VM with Debian Sid and aptituded osmcoastlines running on a dataset containing either planet or a single triangle with good coastline I get the following output:
Output is an empty database. My head is not able to parse the verbose output to something that well, but could it be that you start establish multiple transactions in multiple threads and attempt to execute it synchronous even though SQLITE does not support it?
I'll attempt at building from current git version this easter holiday.