Error dumping 9.4: could not parse numeric array

Started by Devrim GÜNDÜZover 9 years ago5 messagesgeneral
Jump to latest
#1Devrim GÜNDÜZ
devrim@gunduz.org

Hi,

I'm trying to take backup on my laptop, but getting an error. This is
PostgreSQL 9.4.10 on Fedora 25, installed using the community RPMS.

pg_dump: could not parse numeric array "2281": too many numbers
 
I can see this string in src/bin/pg_dump/common.c, but no idea why this
happens. gdb also did not give much info:

===============================================================
Reading symbols from /usr/pgsql-9.4/bin/pg_dump...Reading symbols from /usr/lib/debug/usr/pgsql-9.4/bin/pg_dump.debug...done.
done.
(gdb) run
Starting program: /usr/pgsql-9.4/bin/pg_dump 
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.24-4.fc25.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
pg_dump: could not parse numeric array "2281": too many numbers
[Inferior 1 (process 13625) exited with code 01]
===============================================================

pg_dump -v output is:

===============================================================
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading user-defined functions
pg_dump: could not parse numeric array "2281": too many numbers
===============================================================

Any idea why this is happening, and how can I find a solution?

Thanks!

Regards,
--
Devrim Gündüz
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR

#2Achilleas Mantzios
achill@matrix.gatewaynet.com
In reply to: Devrim GÜNDÜZ (#1)
Re: Error dumping 9.4: could not parse numeric array

Hi Devrim HNY

On 03/01/2017 13:19, Devrim Gündüz wrote:

Hi,

I'm trying to take backup on my laptop, but getting an error. This is
PostgreSQL 9.4.10 on Fedora 25, installed using the community RPMS.

pg_dump: could not parse numeric array "2281": too many numbers

I can see this string in src/bin/pg_dump/common.c, but no idea why this
happens. gdb also did not give much info:

You need to recompile with -g , then put a breakpoint in parseOidArray to see the call stack.

===============================================================
Reading symbols from /usr/pgsql-9.4/bin/pg_dump...Reading symbols from /usr/lib/debug/usr/pgsql-9.4/bin/pg_dump.debug...done.
done.
(gdb) run
Starting program: /usr/pgsql-9.4/bin/pg_dump
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.24-4.fc25.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
pg_dump: could not parse numeric array "2281": too many numbers
[Inferior 1 (process 13625) exited with code 01]
===============================================================

pg_dump -v output is:

===============================================================
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading user-defined functions
pg_dump: could not parse numeric array "2281": too many numbers
===============================================================

Any idea why this is happening, and how can I find a solution?

Thanks!

Regards,

--
Achilleas Mantzios
IT DEV Lead
IT DEPT
Dynacom Tankers Mgmt

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#3Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Devrim GÜNDÜZ (#1)
Re: Error dumping 9.4: could not parse numeric array

On 01/03/2017 03:19 AM, Devrim Gündüz wrote:

Hi,

I'm trying to take backup on my laptop, but getting an error. This is
PostgreSQL 9.4.10 on Fedora 25, installed using the community RPMS.

pg_dump: could not parse numeric array "2281": too many numbers

I can see this string in src/bin/pg_dump/common.c, but no idea why this
happens. gdb also did not give much info:

===============================================================
Reading symbols from /usr/pgsql-9.4/bin/pg_dump...Reading symbols from /usr/lib/debug/usr/pgsql-9.4/bin/pg_dump.debug...done.
done.
(gdb) run
Starting program: /usr/pgsql-9.4/bin/pg_dump
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.24-4.fc25.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
pg_dump: could not parse numeric array "2281": too many numbers
[Inferior 1 (process 13625) exited with code 01]
===============================================================

pg_dump -v output is:

===============================================================
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading user-defined functions
pg_dump: could not parse numeric array "2281": too many numbers
===============================================================

Any idea why this is happening, and how can I find a solution?

Well following parseOidArray from src/bin/pg_dump/common.c to
pg_common.sh indicates that one of the places it is used is the section
for dumping functions:
parseOidArray(protrftypes, typeids, FUNC_MAX_ARGS);

Not sure exactly what is going on here, but since it seems to occur
while reading functions I have to wonder if has something to do with too
many arguments in a function?

Thanks!

Regards,

--
Adrian Klaver
adrian.klaver@aklaver.com

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Devrim GÜNDÜZ (#1)
Re: Error dumping 9.4: could not parse numeric array

Devrim =?ISO-8859-1?Q?G=FCnd=FCz?= <devrim@gunduz.org> writes:

I'm trying to take backup on my laptop, but getting an error. This is
PostgreSQL 9.4.10 on Fedora 25, installed using the community RPMS.
pg_dump -v output is:

===============================================================
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: reading user-defined functions
pg_dump: could not parse numeric array "2281": too many numbers
===============================================================

Any idea why this is happening, and how can I find a solution?

The only conclusion I can draw is that you have a row in pg_proc
in which proargtypes has more entries than pronargs says there
should be. How it got that way is not apparent --- but you could
start by seeing if you can identify the corrupt row(s).

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#5Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Tom Lane (#4)
Re: Error dumping 9.4: could not parse numeric array

Hi Tom,

On Tue, 2017-01-03 at 09:43 -0500, Tom Lane wrote:

The only conclusion I can draw is that you have a row in pg_proc
in which proargtypes has more entries than pronargs says there
should be.  How it got that way is not apparent --- but you could
start by seeing if you can identify the corrupt row(s).

Thank you! I think these lines looks suspicious:

     proname      | pronargs |      proargtypes      |    probin    
---------
---------+----------+-----------------------+--------------
 gipr_consistent  | 
       3 | 2281 22793 21 26 2281 | $libdir/ip4r
 gip6r_consistent |        3 |
2281 22781 21 26 2281 | $libdir/ip4r
 gip4r_consistent |        3 | 2281 22769
21 26 2281 | $libdir/ip4r

They come from ip4r extension, and when I removed them, the error went away.
FWIW, I don't think this is a hardware error, but I'll also put it on the
table. CC'ing Andrew, in case he has some ideas on this.

Regards,
--
Devrim Gündüz
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR