ok, so I believe this is the AVX2 issue I was talking about, as I
realize that enabling AVX2 is the default mode when TileDB is built from
source (which the Docker image does), and must be explicitly disabled
with "./bootstrap --disable-avx2" (I've just changed the build recipe to
include that, will take effect next time the images are refreshed)
To confirm, can you send or just check the output of : cat
/proc/cpuinfo|grep sse|head -n 1
If there is no "avx2" in it, this is at 99.9% the reason of the issue.
Even
Le 04/02/2024 à 06:20, Michael Sumner a écrit :
skipping TileDB does fix:
ogr2ogr /tmp/newdir
https://github.com/SymbolixAU/geojsonsf/raw/master/inst/examples/geo_melbourne.geojson -f
"ESRI Shapefile"
export GDAL_SKIP=TileDB
ogrinfo /tmp/newdir/
INFO: Open of `/tmp/newdir/'
using driver `ESRI Shapefile' successful.
1: geo_melbourne (Polygon)
unset GDAL_SKIP
ogrinfo /tmp/newdir/
Illegal instruction (core dumped)
I failed to explain that I'm using gdal containers from the repo:
docker run --rm -ti ghcr.io/osgeo/gdal:ubunt
<http://ghcr.io/osgeo/gdal:ubunt>
u-full-latest
apt update
apt install -y gdb
Here's the output of under gdb as you suggested, there was a lot so I
put it on a gist:
https://gist.github.com/mdsumner/839ae6e05ededf640b65bfee3a20a4c0
gdb --args ogrinfo /tmp/newdir/
> run
> thread apply all bt
Thanks!
On Sat, Feb 3, 2024 at 7:49 PM Even Rouault
<even.roua...@spatialys.com> wrote:
- When it crashes under gdb, type "thread apply all bt" to get the
stack trace of all threads
- I suspect there is a connection with
https://github.com/OSGeo/gdal/pull/9170 , but that pull request
wouldn't help here as "/tmp/newdir" could be a valid connection to
TileDB
- how did you get TileDB installed? It looks to be packaged? Which
distribution do you use?
- SIGILL reminds me of issues with some TileDB builds using the
AVX2 instruction set by default, which could cause some crash on
host CPUs that don't have AVX2 (unlikely on recent hardware though)
- Setting GDAL_SKIP=TileDB should be a workaround
Le 03/02/2024 à 07:15, Michael Sumner a écrit :
Thanks Even, so there's something about tiledb under gdb (or
maybe I am mangling the context, I will try variants of the host
I'm using). Run with valgrind included below.
gdb --args ogrinfo /tmp/newdir/
...
(gdb) run
Starting program: /usr/local/bin/ogrinfo /tmp/newdir/
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe7757640 (LWP 988)]
[New Thread 0x7fffe6f56640 (LWP 989)]
[New Thread 0x7fffde755640 (LWP 990)]
[New Thread 0x7fffd5f54640 (LWP 991)]
[New Thread 0x7fffc5753640 (LWP 992)]
[New Thread 0x7fffc4f52640 (LWP 993)]
[New Thread 0x7fffb4751640 (LWP 994)]
[New Thread 0x7fffabf50640 (LWP 995)]
[New Thread 0x7fffab74f640 (LWP 996)]
[New Thread 0x7fffa2f4e640 (LWP 997)]
[New Thread 0x7fff9a74d640 (LWP 998)]
[New Thread 0x7fff91f4c640 (LWP 999)]
[New Thread 0x7fff8974b640 (LWP 1000)]
[New Thread 0x7fff78f4a640 (LWP 1001)]
[New Thread 0x7fff78749640 (LWP 1002)]
[New Thread 0x7fff6f5ff640 (LWP 1003)]
Thread 1 "ogrinfo" received signal SIGILL, Illegal instruction.
0x00007ffff3773c9e in
tiledb::common::ThreadPool::ThreadPool(unsigned long) () from
/lib/x86_64-linux-gnu/libtiledb.so.2.16
valgrind -s ogrinfo /tmp/newdir
==704== Memcheck, a memory error detector
==704== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward
et al.
==704== Using Valgrind-3.18.1 and LibVEX; rerun with -h for
copyright info
==704== Command: ogrinfo /tmp/newdir
==704==
INFO: Open of `/tmp/newdir'
using driver `ESRI Shapefile' successful.
1: geo_melbourne (Polygon)
==704==
==704== HEAP SUMMARY:
==704== in use at exit: 25,486 bytes in 216 blocks
==704== total heap usage: 15,761 allocs, 15,545 frees,
2,390,169 bytes allocated
==704==
==704== LEAK SUMMARY:
==704== definitely lost: 0 bytes in 0 blocks
==704== indirectly lost: 0 bytes in 0 blocks
==704== possibly lost: 544 bytes in 1 blocks
==704== still reachable: 24,942 bytes in 215 blocks
==704== suppressed: 0 bytes in 0 blocks
==704== Rerun with --leak-check=full to see details of leaked memory
==704==
==704== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0
from 0)
ogrinfo /tmp/newdir
Illegal instruction (core dumped)
Cheers, Mike
On Sat, Feb 3, 2024 at 12:46 PM Even Rouault
<even.roua...@spatialys.com> wrote:
Michael,
I'm wondering if there not might be something wrong with your
build or runtime environment. Or there's something subtle,
because that works fine for me with my dev build or in the
ghcr.io/osgeo/gdal:alpine-normal-3.8.3
<http://ghcr.io/osgeo/gdal:alpine-normal-3.8.3> Docker image
Try running "valgrind ogrinfo /tmp/newdir/" or "gdb --args
ogrinfo /tmp/newdir/" (type "run") to get more useful information
Even
Le 03/02/2024 à 02:35, Michael Sumner via gdal-dev a écrit :
I'm getting Illegal instruction / core dumped on ogrinfo of
a directory:
ogr2ogr /tmp/newdir
https://github.com/SymbolixAU/geojsonsf/raw/master/inst/examples/geo_melbourne.geojson
-f "ESRI Shapefile"
ogrinfo /tmp/newdir/
Illegal instruction (core dumped)
I've worked back through some docker images and it wasn't a
problem in 3.6.0, but I'm getting it since 3.7.0 - or I'm
doing something wrong entirely.
Cheers, Mike
--
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsum...@gmail.com
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev
--
http://www.spatialys.com
My software is free, but my time generally not.
--
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsum...@gmail.com
--
http://www.spatialys.com
My software is free, but my time generally not.
--
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsum...@gmail.com
--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev