Re: [BUGS] BUG #4680: Server crashed if using wrong (mismatch) conversion functions

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: [BUGS] BUG #4680: Server crashed if using wrong (mismatch) conversion functions
Дата
Msg-id 49AC356D.5080905@enterprisedb.com
обсуждение исходный текст
Ответ на Re: [BUGS] BUG #4680: Server crashed if using wrong (mismatch) conversion functions  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [BUGS] BUG #4680: Server crashed if using wrong (mismatch) conversion functions
Список pgsql-hackers
Tom Lane wrote:
> I wrote:
>> In any case, that's orthogonal to the part that I was focusing on,
>> which was to try to prevent error recursion as a result of trouble
>> in the encoding conversion subsystem.  It looks like we could do that
>> with some additional hacking in send_message_to_frontend() to avoid
>> conversion, as well as translation, when in_error_recursion_trouble()
>> is true.  Your point about there possibly being non-ASCII user-inserted
>> data in the message is a bit troubling, but for the cases where
>> recursion is actually occurring I don't think that that will happen.
> 
> Here is a proposed patch that does this.  It largely reverts my patch
> of 2008-10-27 in favor of a more general policy that says that *all*
> localization of error messages is disabled once we get into error
> recursion trouble.  Having done that, we can reasonably assume that
> the error message text is 7-bit ASCII, and therefore bypass encoding
> conversion as well.  This fixes the example reported in bug #4680
> (even without the subsequent patch to prevent that case from arising),
> and it still prevents the cases that my previous patch was meant to
> deal with.
> 
> Comments, objections?

Looks ok to me. I'm still a bit uneasy about the assumption that the 
error message is 7-bit ACII. Maybe that's just because I don't fully 
understand all the conditions how we can end up in recursion, so I would 
still put something into pq_send_raw_string to check that the string 
really is 7-bit ASCII. Just in case. Maybe clear all the high bits, or 
replace non-ASCII characters with question marks.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


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

Предыдущее
От: Greg Stark
Дата:
Сообщение: Re: regression test crashes at tsearch
Следующее
От: Robert Treat
Дата:
Сообщение: sanity check on max_fsm_relations