<div dir="ltr"><div>hi.</div><div>I have an issue when running terracotta with the proj package from ubuntuGIS ppa.</div><div>This porj-data 7.2.1 on ubuntu 20.04 with a custom compiled by myself python 3.9.5<br></div><div><br></div><div>I have detailed the issue there<br></div><div><a href="https://github.com/DHI-GRAS/terracotta/issues/239">https://github.com/DHI-GRAS/terracotta/issues/239</a></div><div><br></div><div>Here is a copy:</div><div><p dir="auto">Hello,<br>
I don't know where to report this and I don't know either what is causing this.</p>
<p dir="auto">On ubuntu 20.04, with the ppa from terracotta core dump 
with proj-data from ubuntugis. I have emailed the admin team of the repo.
 This is a copy.</p>
<p dir="auto">I am trying to install terracotta (<a href="https://github.com/DHI-GRAS/terracotta/">https://github.com/DHI-GRAS/terracotta/</a>) in a python virtualenv and this leads to error and core dump when proj-data from ubuntuGIS repo is installed.</p>
<p dir="auto">What I am doing is:</p>
<div class="gmail-snippet-clipboard-content gmail-position-relative gmail-overflow-auto"><pre><code>$ python3.9 -m venv tc4m
$ cd tc4m
$ source bin/activate
$ pip install terracotta
$ pip install Cython
$ pip install crick

$ terracotta
Usage: terracotta [OPTIONS] COMMAND [ARGS]...

  The command line interface for the Terracotta tile server.

  All flags must be passed before specifying a subcommand.

  Example:

      $ terracotta -c config.toml connect localhost:5000

Options:
  -c, --config TOML-FILE          Update global settings from this TOML file.
  --loglevel [debug|info|warning|error|critical]
                                  Set level for log messages
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Commands:
  connect           Connect to a running Terracotta instance and interactively
                    explore data in it.

  ingest            Ingest a collection of raster files into a SQLite
                    database.

  optimize-rasters  Optimize a collection of raster files for use with
                    Terracotta.

  serve             Serve rasters through a local Flask development server.
free(): invalid pointer
Aborted (core dumped)

$ strace terracotta
[...]
fstat(4, {st_mode=S_IFREG|0664, st_size=1356, ...}) = 0
ioctl(4, TCGETS, 0x7fff96895090)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = 0
lseek(4, 0, SEEK_CUR)                   = 0
fstat(4, {st_mode=S_IFREG|0664, st_size=1356, ...}) = 0
read(4, "a\r\r\n\0\0\0\0T\254\250a\255\4\0\0\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1357) = 1356
read(4, "", 1)                          = 0
close(4)                                = 0
ioctl(1, TCGETS, 0x7fff96896280)        = -1 ENOTTY (Inappropriate ioctl for device)
write(1, "Usage: terracotta [OPTIONS] COMM"..., 971) = 971
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f2914b3d3c0}, {sa_handler=0x55adcaa9b2f2, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f2914b3d3c0}, 8) = 0
stat("/usr/share/proj/proj.db", {st_mode=S_IFREG|0644, st_size=8925184, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=8925184, ...}) = 0
stat("/usr/share/proj/proj.db", {st_mode=S_IFREG|0644, st_size=8925184, ...}) = 0
close(3)                                = 0
writev(2, [{iov_base="free(): invalid pointer", iov_len=23}, {iov_base="\n", iov_len=1}], 2free(): invalid pointer
) = 24
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2914b82000
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid()                                = 49281
gettid()                                = 49281
tgkill(49281, 49281, SIGABRT)           = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=49281, si_uid=1001} ---

+++ killed by SIGABRT (core dumped) +++
</code></pre></div>
<p dir="auto">I am writing this here because it seems to come from proj.db ???<br>
There is no problem with proj-data-6.3.1 with proj.db from 2020</p>
<p dir="auto">and this leads to more problem afterwards when trying to run terracotta optimize-rasters</p>
<div class="gmail-snippet-clipboard-content gmail-position-relative gmail-overflow-auto"><pre><code>$ terracotta optimize-rasters ../NaturalnessBZHv1.tif -o optimized/
proj_create_from_database: SQLite error on SELECT name, coordinate_system_auth_name, coordinate_system_code, geodetic_crs_auth_name, geodetic_crs_code, conversion_auth_name, conversion_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM projected_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name
Optimizing 1 file on 1 process
NaturalnessBZHv1.tif ... (1/1)
proj_create_from_database: SQLite error on SELECT name, coordinate_system_auth_name, coordinate_system_code, geodetic_crs_auth_name, geodetic_crs_code, conversion_auth_name, conversion_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM projected_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name
free(): invalid pointer
Aborted (core dumped)
</code></pre></div>
<p dir="auto">Any idea/help on how to fix this ?</p>
<p dir="auto">I have no problem on archlinux, with proj 8.0.0 and python 3.9.9</p></div></div>