Hello!

Josh Curtis <[email protected]>:
> This is definitely a bit more complex. It requires that SetNewSxactGlobalXmin 
> is never called when SxactGlobalXmin is invalid to prevent readers from 
> seeing an invalid transaction ID when they should see a valid one -- I think 
> this is the case now since before SetNewSxactGlobalXmin is called postgres 
> checks that PredXact->SxactGlobalXminCount > 0. I assume this entails that 
> SxactGlobalXmin is valid, but I have not checked every place the two 
> variables are modified.

Such logic feels fragile to me. Maybe add a special flag like
'PredXact->SxactGlobalSkipAllowed' which will be updated to 'true' by
SetNewSxactGlobalXmin, and dropped to 'false' by functions affecting
PredXact->activeList?
But I prefer the first solution anyway.

Best regards,
Mikhail.


Reply via email to