Re: PostgreSQL BugTool Submission

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PostgreSQL BugTool Submission
Дата
Msg-id 4497.966918030@sss.pgh.pa.us
обсуждение исходный текст
Ответ на PostgreSQL BugTool Submission  (Unprivileged user <nobody>)
Список pgsql-bugs
Unprivileged user <nobody@hub.org> writes:
> The backend crash after seeing a message 'NOTICE: trying to delete
> portal name that does not exist' after using a cursor on a particular
> query (which'll be shown below).

Oooh, that's a nasty one!  The problem is one of bogus memory management
for the hash table that's used by the hash join that the sub-select is
implemented with.  As seen in 7.0.*, the problem is that the hash table
is stored in a separate "portal" which might be deleted before the
portal the CURSOR itself is kept in.  (If so, the eventual delete of the
cursor finds itself referencing already-freed memory.)  Current sources,
7.1-to-be, use a different memory management scheme but still exhibited
a genetically related bug.

I have fixed the problem in current sources but don't see any reasonably
simple/trustworthy way of fixing it in 7.0.*.  What I'd suggest as a
short-term band-aid is picking a different cursor name.  A little
experimentation should find a name that hashes before the name generated
internally for the hashtable portal --- that will ensure that shutdown
occurs in appropriate order.  A kluge, I know :-(

Thanks for the excellent bug report ... I'm sure it was a pain nailing
down a reproducible example of this creepie-crawlie.

            regards, tom lane

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

Предыдущее
От: Unprivileged user
Дата:
Сообщение: PostgreSQL BugTool Submission
Следующее
От: Karel Zak
Дата:
Сообщение: Re: to_char Bug...