Segmentation fault with OTB 7

Hello,

we have some issues with the new release, it seems to come from the command line launcher :

otbcli_RadiometricIndices -list Vegetation:MSAVI2 -channels.red 1 -channels.nir 2 -in test_msavi.vrt -out msavi_31UFS_20180707.tif
2019-10-02 14:26:04 (INFO) RadiometricIndices: Default RAM limit for OTB is 256 MB
2019-10-02 14:26:04 (INFO) RadiometricIndices: GDAL maximum cache size is 1605 MB
2019-10-02 14:26:04 (INFO) RadiometricIndices: OTB will use at most 16 threads
/export/apps/os151/OTB-7.0.0/bin/otbcli : ligne 55 : 23546 Erreur de segmentation (core dumped) $OTB_CLI_LAUNCHER “$@”

the same error occurs with the other command lines.

Hello,

I will try to reproduce.

Can you give more information about your configuration? Which platform are you using, are you using binaries or compiling from source ?

Also, Is there anything special with your vrt input file ?

CĂ©dric

Hello,

here are some specs : open suse 15.1 , gdal 3.0.1 , compiled from source with the superbuild.

Nothing specila with the vrt : I’ve tried a simple otbcli_BandMath (-exp “im1b1*2”) with a small tif and I have the same error

I’ve tried both command lines with OTB 6.7/gdal 2.2.4 on the same computer and it works

Thanks

Julien

I can reproduce your segfaults with this dockerfile:

Dockerfile (1.5 KB)

I need to do some further investigation here. I also tested it on ubuntu with this dockerfile and it works:

Dockerfile (1.5 KB)

thanks for testing. My colleague told me that the superbuild used two different versions of libproj, and maybe this could cause the segfault when reading files (don’t know why, but currently this is our best idea)

There is one libproj from OTB and one from GDAL itself that seem to conflict. We will try to recompile with a single one and tell you if it works.

libproj.so.12 => /export/apps/os151/OTB-7.0.0/lib/libproj.so.12 (0x00007fbb83d98000)

libproj.so.15 => /export/apps/os151/gdal-3.0.1/gdal/lib64/libproj.so.15 (0x00007fbb80d7b000)

The Superbuild will compile PROJ 4.9.3, (libproj.so.12), and GDAL 3 must be linked with PROJ >= 6 (e.g. libproj.so.15).

So if you want to only use one version of the PROJ library you should use at least version 6. I think the libraries depending on PROJ are GDAL, OSSIM and GEOTIFF.

Thanks for your help. It works now. The problem came from the “old” geotif lib in the superbuild, which in turn made that on older PROJ lib was used, not compatible with the GDAL 3 PROJ lib. When we use only one PROJ lib (libproj.so.15) it works fine.

Yep, oddly the conflicting proj libraries doesn’t seem to cause problem on ubuntu. I updated my opensuse 15.1 docker file to build OTB using only PROJ 6.2 :

Dockerfile (2.2 KB)

You also had to compile a more recent geotiff lib right ?

At some point we should upgrade gdal to 3.X in the Superbuild (and proj to proj 6.X), this will make things easier.

yes, geotiff lib was compiled from their master version on https://github.com/OSGeo/libgeotiff.git

1 Like