[GRASS-dev] [GRASS GIS] #3693: Issue with G76 in docker: creating a location fails

#3693: Issue with G76 in docker: creating a location fails
-------------------------+---------------------------------
Reporter: neteler | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 7.4.3
Component: Python | Version: svn-releasebranch76
Keywords: docker | CPU: Unspecified
Platform: Unspecified |
-------------------------+---------------------------------
while we meanwhile use GRASS GIS 7.6.svn in docker for months we ran
into this issue:

{{{
root@52e6935c3247:/grassdb# grass76 --text c 'EPSG:4326'
/actinia_core/grassdb/latlongtest
Cleaning up temporary files...
Starting GRASS GIS...
Creating new GRASS GIS location <latlongtest>...
Traceback (most recent call last):
   File "/usr/local/bin/grass76", line 2162, in <module>
     main()
   File "/usr/local/bin/grass76", line 2075, in main
     geofile=params.geofile, create_new=True)
   File "/usr/local/bin/grass76", line 1005, in set_mapset
     create_location(gisdbase, location_name, geofile)
   File "/usr/local/bin/grass76", line 807, in create_location
     epsg=epsg, datum_trans=datum_trans)
   File "/usr/local/grass-7.6.svn/etc/python/grass/script/core.py",
line 1538, in create_location
     encoding='utf-8', mode='w')
   File "/usr/lib/python2.7/codecs.py", line 898, in open
     file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory:
'/actinia_core/grassdb/latlongtest/PERMANENT/MYNAME'
}}}

Thanks to Vaclav (https://lists.osgeo.org/pipermail/grass-
dev/2018-November/090480.html) I now understand that the mkdir part in
lib/python/script/core.py fails.

Not sure how relevant but the volume is mounted into docker:

{{{
df -h /actinia_core/grassdb/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/wandel--app--vg-opt 19G 13G 5.3G 71%
/actinia_core/grassdb
}}}

The [https://hub.docker.com/r/mundialis/grass-gis-stable/ used docker
image] doesn't show this behaviour on a different machine.

Attached a patch which fixes it for me; it is based on the code snippet
proposed here: https://stackoverflow.com/a/273227

Perhaps a better code style is possible.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
--------------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Python | Version: svn-releasebranch76
Resolution: | Keywords: docker
       CPU: Unspecified | Platform: Unspecified
--------------------------+---------------------------------
Changes (by neteler):

* Attachment "lib_python_script_core.diff" added.

Patch of lib/python/script/core.py to overcome location creation problems
on docker with externally mounted volumes

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
--------------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Python | Version: svn-releasebranch76
Resolution: | Keywords: docker
       CPU: Unspecified | Platform: Unspecified
--------------------------+---------------------------------

Comment (by mmetz):

Replying to [ticket:3693 neteler]:
> while we meanwhile use GRASS GIS 7.6.svn in docker for months we ran
> into this issue:
>
> {{{
> root@52e6935c3247:/grassdb# grass76 --text c 'EPSG:4326'
> /actinia_core/grassdb/latlongtest
> Cleaning up temporary files...
> Starting GRASS GIS...
> Creating new GRASS GIS location <latlongtest>...
> Traceback (most recent call last):
> File "/usr/local/bin/grass76", line 2162, in <module>
> main()
> File "/usr/local/bin/grass76", line 2075, in main
> geofile=params.geofile, create_new=True)
> File "/usr/local/bin/grass76", line 1005, in set_mapset
> create_location(gisdbase, location_name, geofile)
> File "/usr/local/bin/grass76", line 807, in create_location
> epsg=epsg, datum_trans=datum_trans)
> File "/usr/local/grass-7.6.svn/etc/python/grass/script/core.py",
> line 1538, in create_location
> encoding='utf-8', mode='w')
> File "/usr/lib/python2.7/codecs.py", line 898, in open
> file = __builtin__.open(filename, mode, buffering)
> IOError: [Errno 2] No such file or directory:
> '/actinia_core/grassdb/latlongtest/PERMANENT/MYNAME'
> }}}
>
> Thanks to Vaclav (https://lists.osgeo.org/pipermail/grass-
dev/2018-November/090480.html) I now understand that the mkdir part in
lib/python/script/core.py fails.

I disagree, the mapset should have been created by g.proj:
https://trac.osgeo.org/grass/browser/grass/branches/releasebranch_7_6/lib/python/script/core.py#L1515
>
>
> Attached a patch which fixes it for me; it is based on the code snippet
proposed here: https://stackoverflow.com/a/273227

The patch does not create a valid mapset, it creates only an empty
directory: the files DEFAULT_WIND, PROJ_EPSG, PROJ_INFO, PROJ_UNITS, WIND
are missing.

You need to find out why g.proj called by create_location() has not
created the location with mapset PERMANENT
(/actinia_core/grassdb/latlongtest/PERMANENT)

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:1&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
----------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Startup | Version: svn-releasebranch76
Resolution: | Keywords: docker g.proj
       CPU: x86-64 | Platform: Linux
----------------------+---------------------------------
Changes (by neteler):

* keywords: docker => docker g.proj
* platform: Unspecified => Linux
* component: Python => Startup
* cpu: Unspecified => x86-64
* cc: carmenTawalika (added)

Comment:

(I am a bit verbose here in order to show the debugging within docker)

Replying to [comment:1 mmetz]:
> I disagree, the mapset should have been created by g.proj:
>
https://trac.osgeo.org/grass/browser/grass/branches/releasebranch_7_6/lib/python/script/core.py#L1515

> ...
> You need to find out why g.proj called by create_location() has not
created the location with mapset PERMANENT
(/actinia_core/grassdb/latlongtest/PERMANENT)

I see, thanks for the hint. So I get (wow!):

{{{
GRASS 7.6.svn (latlongtest3):/grassdb > g.proj -t epsg=4326
location=location
Illegal instruction (core dumped)
}}}

Trying with gdb in docker:

{{{
GRASS 7.6.svn (latlongtest3):/grassdb > gdb g.proj
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git

(gdb) r -t epsg=4326 location=location
Starting program: /usr/local/grass-7.6.svn/bin/g.proj -t epsg=4326
location=location
warning: Error disabling address space randomization: Operation not
permitted
warning: Could not trace the inferior process.
Error:
warning: ptrace: Operation not permitted
During startup program exited with code 127.
}}}

Following http://visualgdb.com/gdbreference/commands/set_disable-
randomization I get
{{{
(gdb) set disable-randomization off
(gdb) r -t epsg=4326 location=location
Starting program: /usr/local/grass-7.6.svn/bin/g.proj -t epsg=4326
location=location
warning: Could not trace the inferior process.
Error:
warning: ptrace: Operation not permitted
During startup program exited with code 127.
}}}

Normally one has to use `docker run --cap-add=SYS_PTRACE ...` but we use
docker-compose here, so that goes into the related .yml file
([https://stackoverflow.com/a/51530034/452464 hint]).

Now debugging is enabled:
{{{
(gdb) r -t epsg=4326 location=location
Starting program: /usr/local/grass-7.6.svn/bin/g.proj -t epsg=4326
location=location
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x00007ffff7bced1e in read_datum_table () from
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so
(gdb) bt full
#0 0x00007ffff7bced1e in read_datum_table () from
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so
No symbol table info available.
#1 0x00007ffff7bcde4b in GPJ_osr_to_grass () from
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so
No symbol table info available.
#2 0x0000555555557dab in input_epsg ()
No symbol table info available.
#3 0x0000555555556d57 in main ()
No symbol table info available.
}}}

Trying with strace:

{{{
GRASS 7.6.svn (latlongtest3):/grassdb > strace g.proj -t epsg=4326
location=location
...
futex(0x7fecb07d73a4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
stat("/usr/share/gdal/2.2/gcs.csv", {st_mode=S_IFREG|0644, st_size=53326,
...}) = 0
openat(AT_FDCWD, "/usr/share/gdal/2.2/gcs.csv", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=53326, ...}) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 4096) = 4096
lseek(3, 0, SEEK_SET) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 4096) = 4096
brk(0x5632c9f8b000) = 0x5632c9f8b000
fstat(3, {st_mode=S_IFREG|0644, st_size=53326, ...}) = 0
lseek(3, 53248, SEEK_SET) = 53248
read(3, "Helena Geodetic Datum 2015,1174,"..., 4096) = 78
lseek(3, 0, SEEK_SET) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 53248) = 53248
read(3, "Helena Geodetic Datum 2015,1174,"..., 4096) = 78
close(3) = 0
stat("/usr/share/gdal/2.2/gcs.override.csv", {st_mode=S_IFREG|0644,
st_size=513, ...}) = 0
openat(AT_FDCWD, "/usr/share/gdal/2.2/gcs.override.csv", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 4096) = 513
lseek(3, 0, SEEK_SET) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 4096) = 513
fstat(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "\"COORD_REF_SYS_CODE\",\"COORD_REF_"..., 4096) = 513
lseek(3, 513, SEEK_SET) = 513
close(3) = 0
stat("/usr/share/gdal/2.2/ellipsoid.csv", {st_mode=S_IFREG|0644,
st_size=14365, ...}) = 0
openat(AT_FDCWD, "/usr/share/gdal/2.2/ellipsoid.csv", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=14365, ...}) = 0
read(3, "ellipsoid_code,ellipsoid_name,se"..., 4096) = 4096
lseek(3, 0, SEEK_SET) = 0
read(3, "ellipsoid_code,ellipsoid_name,se"..., 4096) = 4096
fstat(3, {st_mode=S_IFREG|0644, st_size=14365, ...}) = 0
lseek(3, 12288, SEEK_SET) = 12288
read(3, "been used in Danish work.,\"Kort "..., 4096) = 2077
lseek(3, 0, SEEK_SET) = 0
read(3, "ellipsoid_code,ellipsoid_name,se"..., 12288) = 12288
read(3, "been used in Danish work.,\"Kort "..., 4096) = 2077
close(3) = 0
stat("/usr/share/gdal/2.2/gdal_datum.csv", {st_mode=S_IFREG|0644,
st_size=234839, ...}) = 0
openat(AT_FDCWD, "/usr/share/gdal/2.2/gdal_datum.csv", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=234839, ...}) = 0
read(3, "\"DATUM_CODE\",\"DATUM_NAME\",\"DATUM"..., 4096) = 4096
lseek(3, 0, SEEK_SET) = 0
read(3, "\"DATUM_CODE\",\"DATUM_NAME\",\"DATUM"..., 4096) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
lseek(3, 4096, SEEK_SET) = 4096
read(3, "seau_Geodesique_de_la_RDC_2005\"\n"..., 4096) = 4096
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
lseek(3, 8192, SEEK_SET) = 8192
read(3, "1982-01-01,7024,8901,3228,Topogr"..., 4096) = 4096
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
lseek(3, 12288, SEEK_SET) = 12288
read(3, "al Reference Frame,geodetic,ITRF"..., 4096) = 4096
lseek(3, 8192, SEEK_SET) = 8192
...
read(3, "Santa Maria de Ipire,engineering"..., 4096) = 1367
lseek(3, 229376, SEEK_SET) = 229376
read(3, ". Latitude: 40.835864 grads N, l"..., 4096) = 4096
read(3, "Santa Maria de Ipire,engineering"..., 4096) = 1367
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
lseek(3, 234839, SEEK_SET) = 234839
read(3, "", 4096) = 0
lseek(3, 0, SEEK_CUR) = 234839
read(3, "", 4096) = 0
lseek(3, 0, SEEK_CUR) = 234839
close(3) = 0
openat(AT_FDCWD, "/usr/local/grass-7.6.svn/etc/proj/datum.table",
O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=5725, ...}) = 0
read(3, "# Datum Transformation Parameter"..., 4096) = 4096
--- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x7fecb0a2ed1e}
---
+++ killed by SIGILL (core dumped) +++
Illegal instruction (core dumped)
}}}

Quite confusing for me. The file starts like this:
{{{
head /usr/local/grass-7.6.svn/etc/proj/datum.table
# Datum Transformation Parameter Lists for GRASS
# (single 3-parameter datum transformation))
#
# This file contains datum shift parameters,
# it supplies a datum database table for GRASS
...
}}}

The version used here is:
{{{
GRASS 7.6.svn (latlongtest3):/grassdb > g.version -rbe
GRASS 7.6.svn (2018)

  ./configure --enable-largefile --with-cxx --with-nls --with-readline
--with-sqlite --with-bzlib --with-zstd --with-cairo --with-cairo-
ldflags=-lfontconfig --with-freetype --with-freetype-
includes=/usr/include/freetype2/ --with-fftw --with-netcdf --with-liblas
--with-liblas-config=/usr/bin/liblas-config --with-pdal --with-proj
--with-proj-share=/usr/share/proj --with-geos=/usr/bin/geos-config --with-
postgres --with-postgres-includes=/usr/include/postgresql --with-opengl-
libs=/usr/include/GL
libgis Revision: 72327
libgis Date: 2018-03-06 12:12:44 +0100 (Tue, 06 Mar 2018)
PROJ.4: 4.9.3
GDAL/OGR: 2.2.3
GEOS: 3.6.2
SQLite: 3.22.0

uname -a
Linux d30387cd7649 4.4.0-133-generic #159-Ubuntu SMP Fri Aug 10 07:31:43
UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
}}}

Honestly, I have no idea what's wrong.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:2&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
----------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Startup | Version: svn-releasebranch76
Resolution: | Keywords: docker g.proj
       CPU: x86-64 | Platform: Linux
----------------------+---------------------------------

Comment (by mmetz):

Replying to [comment:2 neteler]:
> Trying with strace:
>
> {{{
> GRASS 7.6.svn (latlongtest3):/grassdb > strace g.proj -t epsg=4326
location=location
> ...
> openat(AT_FDCWD, "/usr/local/grass-7.6.svn/etc/proj/datum.table",
O_RDONLY) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=5725, ...}) = 0
> read(3, "# Datum Transformation Parameter"..., 4096) = 4096
> --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x7fecb0a2ed1e}
---
> +++ killed by SIGILL (core dumped) +++
> Illegal instruction (core dumped)
> }}}
>
> ...
>
> Honestly, I have no idea what's wrong.

This does not seem to be a GRASS-related error. Considering that the same
(?) docker image works on a different system (docker images are specific
to each system, right?) and that g.proj works outside docker, I suggest to
rebuild the docker image causing trouble.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:3&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
----------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Startup | Version: svn-releasebranch76
Resolution: | Keywords: docker g.proj
       CPU: x86-64 | Platform: Linux
----------------------+---------------------------------

Comment (by neteler):

Replying to [comment:3 mmetz]:
> This does not seem to be a GRASS-related error. Considering that the
same (?) docker image works on a different system (docker images are
specific to each system, right?) and that g.proj works outside docker, I
suggest to rebuild the docker image causing trouble.

I did so, no difference. When I delete "datum.table" then I get:

{{{
(gdb) r -t epsg=4326 location=location
Starting program: /usr/local/grass-7.6.svn/bin/g.proj -t epsg=4326
location=location
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
WARNING: Unable to open datum table file
          </usr/local/grass-7.6.svn/etc/proj/datum.table>
WARNING: Datum <WGS_1984> not recognised by GRASS and no parameters found

Program received signal SIGILL, Illegal instruction.
0x00007ffff7bce060 in GPJ_osr_to_grass () from
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so
(gdb) bt full
#0 0x00007ffff7bce060 in GPJ_osr_to_grass () from
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so
No symbol table info available.
#1 0x0000555555557dab in input_epsg ()
No symbol table info available.
#2 0x0000555555556d57 in main ()
No symbol table info available.

GRASS 7.6.svn (latlongtest3):/grassdb > ldd
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so | grep gdal
         libgdal.so.20 => /usr/lib/libgdal.so.20 (0x00007f8ec76c3000)
GRASS 7.6.svn (latlongtest3):/grassdb > ls -la /usr/lib/libgdal.so.20
lrwxrwxrwx 1 root root 17 Feb 6 2018 /usr/lib/libgdal.so.20 ->
libgdal.so.20.3.2
GRASS 7.6.svn (latlongtest3):/grassdb > ls -la /usr/lib/libgdal.so.20.3.2
-rw-r--r-- 1 root root 16559240 Feb 6 2018 /usr/lib/libgdal.so.20.3.2

GRASS 7.6.svn (latlongtest3):/grassdb > ldd
/usr/local/grass-7.6.svn/lib/libgrass_gproj.7.6.svn.so | grep proj
         libproj.so.12 => /usr/lib/x86_64-linux-gnu/libproj.so.12
(0x00007fac75934000)
GRASS 7.6.svn (latlongtest3):/grassdb > ldd /usr/lib/x86_64-linux-
gnu/libproj.so.12
         linux-vdso.so.1 (0x00007ffdd7ffb000)
         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f4c8142a000)
         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c8108c000)
         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c80c9b000)
         /lib64/ld-linux-x86-64.so.2 (0x00007f4c818b2000)

GRASS 7.6.svn (latlongtest3):/grassdb > ls -la /usr/lib/x86_64-linux-
gnu/libproj.so.12
lrwxrwxrwx 1 root root 17 Jun 18 2017 /usr/lib/x86_64-linux-
gnu/libproj.so.12 -> libproj.so.12.0.0
GRASS 7.6.svn (latlongtest3):/grassdb > ls -la /usr/lib/x86_64-linux-
gnu/libproj.so.12.0.0
-rw-r--r-- 1 root root 430016 Jun 18 2017 /usr/lib/x86_64-linux-
gnu/libproj.so.12.0.0
GRASS 7.6.svn (latlongtest3):/grassdb > cs2cs -v
Using from definition:
Rel. 4.9.3, 15 August 2016
}}}

I will check tomorrow if my attempt to rebuild the docker image went
wrong.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:4&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
----------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.4.3
Component: Startup | Version: svn-releasebranch76
Resolution: | Keywords: docker g.proj
       CPU: x86-64 | Platform: Linux
----------------------+---------------------------------

Comment (by neteler):

Problem solved: update of docker-compose from v1.8.0 to v1.23.1 (what a
waste of time to figure out this one...).

Explanations:

{{{
Program received signal SIGILL, Illegal instruction.
}}}

This means that a CPU instruction is called which is not present in the
CPU running the docker. In our case, we run it on a KVM virtualization.
Apparently docker-compose v1.23 (at least, later than v1.8 addresses the
problem of the missing instruction). w00t!

Closing.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:5&gt;
GRASS GIS <https://grass.osgeo.org>

#3693: Issue with G76 in docker: creating a location fails
-------------------------+---------------------------------
  Reporter: neteler | Owner: grass-dev@…
      Type: defect | Status: closed
  Priority: normal | Milestone: 7.4.3
Component: Startup | Version: svn-releasebranch76
Resolution: worksforme | Keywords: docker g.proj
       CPU: x86-64 | Platform: Linux
-------------------------+---------------------------------
Changes (by neteler):

* status: new => closed
* resolution: => worksforme

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3693#comment:6&gt;
GRASS GIS <https://grass.osgeo.org>