mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Remove misleading hint for "unexpected data beyond EOF" error.
Commit ffae5cc5a6
added this hint in 2006,
but it's now obsolete and doesn't reflect what users should really check
in this situation. We were not able to agree on a new hint, so just delete
the existing one and update the comments to mention one possibility that
is known to cause problems of this kind: something other than PostgreSQL
is modifying files in the PostgreSQL data directory.
Author: Jakub Wartak <jakub.wartak@enterprisedb.com>
Reviewed-by: Robert Haas <rhaas@postgresql.org>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Christoph Berg <myon@debian.org>
Discussion: https://postgr.es/m/CAKZiRmxNbcaL76x=09Sxf7aUmrRQJBf8drzDdUHo+j9_eM+VMg@mail.gmail.com
This commit is contained in:
@ -2743,11 +2743,9 @@ ExtendBufferedRelShared(BufferManagerRelation bmr,
|
||||
* because mdread doesn't complain about reads beyond EOF (when
|
||||
* zero_damaged_pages is ON) and so a previous attempt to read a block
|
||||
* beyond EOF could have left a "valid" zero-filled buffer.
|
||||
* Unfortunately, we have also seen this case occurring because of
|
||||
* buggy Linux kernels that sometimes return an lseek(SEEK_END) result
|
||||
* that doesn't account for a recent write. In that situation, the
|
||||
* pre-existing buffer would contain valid data that we don't want to
|
||||
* overwrite. Since the legitimate cases should always have left a
|
||||
*
|
||||
* This has also been observed when relation was overwritten by external
|
||||
* process. Since the legitimate cases should always have left a
|
||||
* zero-filled buffer, complain if not PageIsNew.
|
||||
*/
|
||||
if (existing_id >= 0)
|
||||
@ -2778,8 +2776,7 @@ ExtendBufferedRelShared(BufferManagerRelation bmr,
|
||||
ereport(ERROR,
|
||||
(errmsg("unexpected data beyond EOF in block %u of relation %s",
|
||||
existing_hdr->tag.blockNum,
|
||||
relpath(bmr.smgr->smgr_rlocator, fork).str),
|
||||
errhint("This has been seen to occur with buggy kernels; consider updating your system.")));
|
||||
relpath(bmr.smgr->smgr_rlocator, fork).str)));
|
||||
|
||||
/*
|
||||
* We *must* do smgr[zero]extend before succeeding, else the page
|
||||
|
Reference in New Issue
Block a user