Thread: [GENERAL] Error dumping 9.4: could not parse numeric array
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
Attachment
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
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
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
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