Ticket #2897 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

Closing a dataset opened with GDALOpenShared in another thread causes later corruption

Reported by: rouault Owned by: rouault
Priority: normal Milestone: 1.6.1
Component: GDAL_Raster Version: 1.6.0
Severity: normal Keywords:
Cc:

Description

The following sequence is currently broken :

hDS = GDALOpenShared("foo.tif", GA_ReadOnly); (done in thread T1)
GDALClose(hDS); (done in thread T2) --> doesn't remove hDS from the set of shared dataset
hDS = GDALOpenShared("foo.tif", GA_ReadOnly); (done in thread T1) --> returns previous pointer on destroy object...
GDALGetDescription(hDS); --> crash or big Valgrind warnings

Change History

Changed 4 years ago by rouault

  • status changed from new to closed
  • resolution set to fixed

Fixed in trunk (r16616) and in branches/1.6 (r16617)

Changed 4 years ago by rouault

Small correction in trunk (r16632) and in branches/1.6 (r16633)

Changed 4 years ago by rouault

Grrr. The fix introduced a regression in GDALDumpOpenDatasets(). Fixed in trunk (r16983) and in branches/1.6 (r16984)

Note: See TracTickets for help on using tickets.