Re: Fix race condition in SSI when reading PredXact->SxactGlobalXmin
| От | Mihail Nikalayeu |
|---|---|
| Тема | Re: Fix race condition in SSI when reading PredXact->SxactGlobalXmin |
| Дата | |
| Msg-id | CADzfLwUFSdC38uES+dfOTUL=YSHxYnm66upLNUd7Zj29fvS9Lw@mail.gmail.com обсуждение исходный текст |
| Ответ на | Fix race condition in SSI when reading PredXact->SxactGlobalXmin (Josh Curtis <jcurtis825@gmail.com>) |
| Ответы |
Re: Fix race condition in SSI when reading PredXact->SxactGlobalXmin
|
| Список | pgsql-hackers |
Hello! Josh Curtis <jcurtis825@gmail.com>: > This is definitely a bit more complex. It requires that SetNewSxactGlobalXmin is never called when SxactGlobalXmin is invalidto prevent readers from seeing an invalid transaction ID when they should see a valid one -- I think this is the casenow since before SetNewSxactGlobalXmin is called postgres checks that PredXact->SxactGlobalXminCount > 0. I assume thisentails 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.
В списке pgsql-hackers по дате отправления: