#3226 closed defect (fixed)
Race condition in gdalrasterband.cpp causing IReadBlock() and IWriteBlock() methods of drivers to be called from different threads
Reported by: | Even Rouault | Owned by: | warmerdam |
---|---|---|---|
Priority: | normal | Milestone: | 2.0.0 |
Component: | default | Version: | unspecified |
Severity: | normal | Keywords: | |
Cc: |
Description
This is largely related to the issue exposed in #3225, but this symptom is potentially more likely to happen.
The attached program run against an unmodified GDAL shows that FlushBlock() can call IWriteBlock() while GetLockedBlockRef() calls IReadBlock(). This would require GDAL drivers to be thread-safe. All this shows that we probably need more severe locking than what we do currently.
Attachments (2)
Change History (6)
by , 14 years ago
Attachment: | hit_bug_3226.cpp added |
---|
comment:1 by , 14 years ago
comment:2 by , 14 years ago
hit_bug_3226_2.cpp is a variation of hit_bug_3226.cpp that doesn't require explicit call to GDALFlushBlock().
by , 14 years ago
Attachment: | hit_bug_3226_2.cpp added |
---|
Variation of the first program that doesn't require explicit call to GDALFlushCacheBlock()
comment:3 by , 9 years ago
Milestone: | → 2.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Actually this is a duplicate of #5983
The output of a run is :