On 30 June 2015 at 05:02, Amit Kapila <amit.kapil...@gmail.com> wrote:

> On Mon, Jun 29, 2015 at 7:18 PM, Simon Riggs <si...@2ndquadrant.com>
> wrote:
> >
> > On 28 June 2015 at 17:17, Tom Lane <t...@sss.pgh.pa.us> wrote:
> >>
> >> I'm not sure what you consider "dire", but missing a dirty buffer
> >> belonging to the to-be-destroyed table would result in the system being
> >> permanently unable to checkpoint, because attempts to write out the
> buffer
> >> to the no-longer-extant file would fail.  You could only get out of the
> >> situation via a forced database crash (immediate shutdown), followed by
> >> replaying all the WAL since the time of the problem.  In production
> >> contexts that could be pretty dire.
> >
> >
> > Yes, its bad, but we do notice that has happened. We can also put in
> code to specifically avoid this error at checkpoint time.
> >
> > If lseek fails badly then SeqScans would give *silent* data loss, which
> in my view is worse. Just added pages aren't the only thing we might miss
> if lseek is badly wrong.
> >
>
> So for the purpose of this patch, do we need to assume that
> lseek can give us wrong size of file and we should add preventive
> checks and other handling for the same?
> I am okay to change that way, if we are going to have that as assumption
> in out code wherever we are using it or will use it in-future, otherwise
> we will end with some preventive checks which are actually not required.
>

They're preventative checks. You always hope it is wasted effort.

-- 
Simon Riggs                http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Reply via email to