Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#2668 closed defect (wontfix)

GTiff driver cannot be used with libtiff older than 3.9.0 (still beta)

Reported by: dron Owned by: warmerdam
Priority: high Milestone: 1.6.0
Component: ConfigBuild Version: svn-trunk
Severity: normal Keywords: gtiff
Cc:

Description

It was found that GTiff driver can fail badly (segfault) on some operations when being linked with the external libtiff older that 3.9.0. This is actually libtiff bug which was fixed in upstream.

Proposed solution: always build with internal libtiff when we have an external one older than 3.9.0.

Best regards,
Andrey

Attachments (1)

configure-check-libtiff-3.9.0.diff (670 bytes ) - added by dron 15 years ago.
Patch to check for libtiff 3.9.0 in configure script

Download all attachments as: .zip

Change History (8)

by dron, 15 years ago

Patch to check for libtiff 3.9.0 in configure script

comment:1 by warmerdam, 15 years ago

Keywords: gtiff added
Priority: normalhigh
Status: newassigned

Andrey,

Can you expand on the problems encountered? I do not what to be this restrictive on the libtiff version. However, my assumption so far has been that problems with older libtiffs only occur in relatively esoteric situations (building overviews, some other update-in-place type operations).

comment:2 by dron, 15 years ago

Yes, it is related to overviews. In particular test_5 from gcore/mask.py is failed with the segmentation fault. But I don't think it is esoteric. We should either document somewhere that GDAL should be built with libtiff >= 3.9.0 or enforce it in configure. That is important for packagers. How they know that there is a known problem and a known workaround for it?

Also it dosn't introduce any additional restrictions. Using the internal libtiff the one will get exactly the same functionality as with old external one, but less buggy.

comment:3 by Even Rouault, 15 years ago

If we enforce internal libtiff, then we should also default to --with-hide-internal-symbols (that was introduced in GDAL 1.5.0, and I think the plan was to default on it for 1.6.0 ?), otherwise people that link their app against GDAL and external libtiff (for example if they use both GDAL and GTK, that inderictly pull external libtiff) that could leak to weird situations where symbols are mixed.

comment:4 by dron, 15 years ago

Component: GDAL_RasterConfigBuild

That is a good point, thanks. I've created a separate ticket (bug #2673) for that.

comment:5 by warmerdam, 15 years ago

Andrey,

In what way is mask_5 not esoteric? Masks are esoteric! Even overview building is a bit out of the ordinary.

I am not adverse some documentation or communication for packagers that stresses the value of building with the internal libtiff and --with-hide-internal-symbols. I do not think that it ought to be enforced in configure nor do I think hiding internal symbols should be the default behavior.

What we really need is to get libtiff 3.9 and libtiff 4.0 released.

comment:6 by warmerdam, 15 years ago

Resolution: wontfix
Status: assignedclosed

I have done some testing with libtiff 3.6.0 and with a few fixes (#2699) it was possible to do normal sorts of operations (gdalinfo, translate, gdaladdo) on GeoTIFF files without apparent problems. I believe that libtiff 3.6.0 should be our minimum requirement, though it might be nice to warn somewhere that using versions older than libtiff 3.9.0 may result in crashes in some relatively unlikely circumstances.

Andrey - please reopen if you find more serious issues.

comment:7 by dron, 15 years ago

I've created a page about the TIFF issues: http://trac.osgeo.org/gdal/wiki/TIFF. Feel free to edit.

Note: See TracTickets for help on using tickets.