Re: Range Types - typo + NULL string constructor

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: Range Types - typo + NULL string constructor
Дата
Msg-id CA+TgmoY-DCq5aUDwnwKV0eZ24ga3S8nRTJU+sey2Ds_eBwbBdQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Range Types - typo + NULL string constructor  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Ответы Re: Range Types - typo + NULL string constructor
Re: Range Types - typo + NULL string constructor
Список pgsql-hackers
On Wed, Oct 26, 2011 at 11:52 AM, Heikki Linnakangas
<heikki.linnakangas@enterprisedb.com> wrote:
> On 26.10.2011 18:42, Robert Haas wrote:
>>
>> On Tue, Oct 25, 2011 at 12:37 PM, Jeff Davis<pgsql@j-davis.com>  wrote:
>>>
>>> Aren't there a few other cases like this floating around the code? I
>>> know the single-xid cache is potentially vulnerable to xid wraparound
>>> for the same reason.
>>
>> I believe that we're in trouble with XIDs as soon as you have two
>> active XIDs that are separated by a billion, ...
>
> That's not what Jeff is referring to here, though (correct me if I'm wrong).
> He's talking about the one-item cache in TransactionIdLogFetch(). You don't
> need need long-running transactions for that to get confused. Specifically,
> this could happen:
>
> 1. In session A: BEGIN; SELECT * FROM foo WHERE id = 1; COMMIT;
>   The row has xmin = 123456, and it is cached as committed in the one-item
> cache by TransactionLogFetch.
> 2. A lot of time passes. Everything is frozen, and XID wrap-around happens.
> (Session A is idle but not in a transaction, so it doesn't inhibit
> freezing.)
> 3. In session B: BEGIN: INSERT INTO foo (id) VALUES (2); ROLLBACK;
>   By coincidence, this transaction was assigned XID 123456.
> 4. In session A: SELECT * FROM foo WHERE id = 2;
>   The one-item cache still says that 123456 committed, so we return the
> tuple inserted by the aborted transaction. Oops.

Oh, hmm.  That sucks.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: Hot Backup with rsync fails at pg_clog if under load
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Range Types - typo + NULL string constructor