Re: HOT chain validation in verify_heapam()
| От | Aleksander Alekseev |
|---|---|
| Тема | Re: HOT chain validation in verify_heapam() |
| Дата | |
| Msg-id | CAJ7c6TPZFHrwGvxNomEFM9w+j9oB1tY6HUpxOCDrJej2dK=WnA@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: HOT chain validation in verify_heapam() (Himanshu Upadhyaya <upadhyaya.himanshu@gmail.com>) |
| Ответы |
Re: HOT chain validation in verify_heapam()
Re: HOT chain validation in verify_heapam() |
| Список | pgsql-hackers |
Hi Himanshu,
Many thanks for working on this!
> Please find attached the patch with the above idea of HOT chain's validation
Please correct me if I'm wrong, but don't we have a race condition here:
```
+ if ((TransactionIdDidAbort(pred_xmin) ||
TransactionIdIsInProgress(pred_xmin))
+ && !TransactionIdEquals(pred_xmin, curr_xmin))
{
```
The scenario that concerns me is the following:
1. TransactionIdDidAbort(pred_xmin) returns false
2. The transaction aborts
3. TransactionIdIsInProgress(pred_xmin) returns false
4. (false || false) gives us false. An error is reported, although
actually the condition should have been true.
--
Best regards,
Aleksander Alekseev
В списке pgsql-hackers по дате отправления: