Hello all,
I’ve got successfully isolate and delete the corrupted rows at the table, but what would caused that? How to prevent it?
Thanks in advance, Flaris.
Flaris R. Feller 48-999811781 flaris.feller@xxxxxxxxx
Em 22 de jun de 2020, à(s) 13:54, Tom Lane <tgl@xxxxxxxxxxxxx> escreveu:
Flaris Feller <flaris.feller@xxxxxxxxx> writes:Em seg., 22 de jun. de 2020 às 12:33, Peter J. Holzer <hjp-pgsql@xxxxxx>
escreveu:
On 2020-06-22 11:13:33 -0300, Flaris Feller wrote:
When using Postgres 9.6.15 on "CentOS Linux release 7.5.1804 (Core)" on
Intel x86_64 I noticed "invalid memory alloc request size" error at PostgreSQL
logs.
That's 2**64 - 3. So probably the size of some object is (erroneously)
computed as -3 bytes.
Yeah. I don't recall the bit-level details offhand, but this is anextremely common symptom of a corrupted length word in a variable-lengthfield.The usual approach is to try to isolate which row or rows contains corruptdata and then delete it. I'm not aware of any tools for doing thatautomatically, but you can usually home in on a bad row by a process ofbinary search, eg testing how many rows you can fetch without seeing theerror. Also "select * from mytab where ctid = '(m,n)'" is useful forprobing individual rows, once you get close to the problem area. regards, tom lane
|