From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Why we panic in pglz_decompress |
Date: | 2008-02-29 15:52:09 |
Message-ID: | 2303.1204300329@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
> Zdenek Kotala wrote:
>> I'm now looking into toast code and I found following code in
>> pglz_decompress:
>>
>> 00704 if (destsize != source->rawsize)
>> 00705 elog(destsize > source->rawsize ? FATAL : ERROR,
>> 00706 "compressed data is corrupt");
>>
>>
>> I'm surprise why we there panic?
> Agreed, FATAL is too strong.
Did either of you read the comment just before this code? The reason
it's panicing is that it's possibly already tromped on some critical
data structure inside the backend.
>> My idea is to improve this piece of code and move error logging to
>> callers (heap_tuple_untoast_attr() and heap_tuple_untoast_attr_slice())
>> where we have a little bit more details (especially for external
>> storage).
> Why move it? Just adding errcontext in the callers should be enough.
AFAIR this error has never once been reported from the field, so I don't
see the point of investing a lot of effort in it.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-02-29 16:07:51 | Re: Read-ahead and parallelism in redo recovery |
Previous Message | Zdenek Kotala | 2008-02-29 15:08:05 | Re: Why we panic in pglz_decompress |