Re: PQclientEncoding() returns -1, resulting in possible assertion failure in psql

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PQclientEncoding() returns -1, resulting in possible assertion failure in psql
Дата
Msg-id 14465.1386526658@sss.pgh.pa.us
обсуждение исходный текст
Ответ на PQclientEncoding() returns -1, resulting in possible assertion failure in psql  (Peter Geoghegan <pg@heroku.com>)
Ответы Re: PQclientEncoding() returns -1, resulting in possible assertion failure in psql  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Peter Geoghegan <pg@heroku.com> writes:
> It's possible to get psql to abort() in an assertion failure from
> legitimate input. If the server is shutdown, and PQclientEncoding()
> returns -1, that value can be passed to a site that expects a valid
> encoding.

> If the call to PQclientEncoding() from processSQLNamePattern() (plus
> probably from other places) gets an encoding of -1, (called when we
> "\df+ somefunc" after the server is gone - you may have to do it
> twice), that can be passed down to PQmblen(), which will in turn pass
> that value to pg_encoding_mblen(), which doesn't expect it.

A simple fix might be to return SQL_ASCII not -1.  I don't think the
-1 behavior is documented or relied on anywhere, is it?

Otherwise, we could check for live connection somewhere much earlier
in the processing of \d and friends.  But it might be difficult to
find a single choke point for doing that, rendering the reliability
of the fix somewhat suspect.

            regards, tom lane

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

Предыдущее
От: Diway
Дата:
Сообщение: bug with json_array_elements on big table ?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PQclientEncoding() returns -1, resulting in possible assertion failure in psql