Attempt to read after the end of file when nbackup state is stalled [CORE3468] #3829
Labels
affect-version: 2.0.4
affect-version: 2.0.5
affect-version: 2.0.6
affect-version: 2.1.0
affect-version: 2.1.1
affect-version: 2.1.2
affect-version: 2.1.3
affect-version: 2.1.4
affect-version: 2.5.0
component: engine
fix-version: 2.1.5
fix-version: 2.5.1
fix-version: 3.0 Alpha 1
priority: major
type: bug
Submitted by: @hvlad
Relate to CORE3792
When relation is extended new page is allocated (and faked) and passed into DPM\extend_relation() function.
Then it is released, and free slot on some pointer page is searched.
When free slot is found just allocated page is fetched again and linked into pointer page.
When nbackup state is stalled database file pre-allocation feature is disabled to left database file in consistent
state while it is copied for backup purpose. Therefore new pages could be allocated after end of database file.
As all new pages will be written into delta and later merged back into database file this is OK.
The issue is that new data page buffer could be evicted from page cache after it was released at the start of
extend_relation(). When page is fetched again it should be read from disk. In stalled state page first reads
from delta. Delta have preallocated space and read succeeds. As page was never written its image contains
zero's only. In this case attempt to read page from database file is performed.
Here we have IO read error : attempt to read after the end of file.
Commits: bd96e2c e67ae1a c208eaf b1c6cfb 4bbd667 c508121 542d70a
The text was updated successfully, but these errors were encountered: