Re: ERROR: invalid memory alloc request size 18446744073709551613 - Mailing list pgsql-general

From Flaris Roland Feller
Subject Re: ERROR: invalid memory alloc request size 18446744073709551613
Date
Msg-id 79695144-6584-473C-9151-E69153C35B74@gmail.com
Whole thread Raw
In response to Re: ERROR: invalid memory alloc request size 18446744073709551613  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
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@gmail.com


Em 22 de jun de 2020, à(s) 13:54, Tom Lane <tgl@sss.pgh.pa.us> escreveu:

Flaris Feller <flaris.feller@gmail.com> writes:
Em seg., 22 de jun. de 2020 às 12:33, Peter J. Holzer <hjp-pgsql@hjp.at>
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 an
extremely common symptom of a corrupted length word in a variable-length
field.

The usual approach is to try to isolate which row or rows contains corrupt
data and then delete it.  I'm not aware of any tools for doing that
automatically, but you can usually home in on a bad row by a process of
binary search, eg testing how many rows you can fetch without seeing the
error.  Also "select * from mytab where ctid = '(m,n)'" is useful for
probing individual rows, once you get close to the problem area.

           regards, tom lane

pgsql-general by date:

Previous
From: Ian Barwick
Date:
Subject: Re: Keeping state in a foreign data wrapper
Next
From: Flaris Roland Feller
Date:
Subject: Re: ERROR: invalid memory alloc request size 18446744073709551613