Thread: BUG #9472: pg_dumpall fails with "unrecognized node type: 650"

BUG #9472: pg_dumpall fails with "unrecognized node type: 650"

From
Wilfried.Weiss@nsg.com
Date:
The following bug has been logged on the website:

Bug reference:      9472
Logged by:          Wilfried Weiss
Email address:      Wilfried.Weiss@nsg.com
PostgreSQL version: 9.2.2
Operating system:   AIX 6.1
Description:

Hi,

when trying to run pg_dumpall it fails with the above mentioned error.

The last lines of the output looks like this:

QUOTE START ------

--
-- Database creation
--

pg_dumpall: query failed: ERROR:  unrecognized node type: 650
pg_dumpall: query was: SELECT datname, coalesce(rolname, (select rolname
from pg_authid where oid=(select datdba from pg_database where
datname='template0'))), pg_encoding_to_char(d.encoding), datcollate,
datctype, datfrozenxid, datistemplate, datacl, datconnlimit, (SELECT spcname
FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace FROM
pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) WHERE datallowconn
ORDER BY 1

QUOTE END ---

What can I do to be able to unload the data again?

Regards Wilfried

Re: BUG #9472: pg_dumpall fails with "unrecognized node type: 650"

From
Tom Lane
Date:
Wilfried.Weiss@nsg.com writes:
> pg_dumpall: query failed: ERROR:  unrecognized node type: 650
> pg_dumpall: query was: SELECT datname, coalesce(rolname, (select rolname
> from pg_authid where oid=(select datdba from pg_database where
> datname='template0'))), pg_encoding_to_char(d.encoding), datcollate,
> datctype, datfrozenxid, datistemplate, datacl, datconnlimit, (SELECT spcname
> FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace FROM
> pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) WHERE datallowconn
> ORDER BY 1

That's very bizarre.  The implication of the error message is that
something examining a query parsetree found a Value node where it
wasn't expecting one.  Ordinarily I'd think a parser or planner bug,
but since this is a standard query in pg_dumpall, it's hard to see
how such a bug could have escaped notice.  Another possible theory
is system-catalog corruption, but I don't see how that would explain
this particular symptom.  I wonder if you've got a corrupted postgres
executable.

In any case, since you're running a version that's a year or two
obsolete, updating to 9.2.latest would be a good first step.

> What can I do to be able to unload the data again?

If upgrading doesn't help, I'd try telling pg_dumpall to connect
to a different database initially (see -d option).  If it is some
bizarre species of catalog corruption, it probably is affecting
the postgres database only, so this might dodge the issue.

Failing that, try pg_dump'ing individual databases.

            regards, tom lane

Re: BUG #9472: pg_dumpall fails with "unrecognized node type: 650"

From
"Weiss, Wilfried"
Date:
Hi Tom,

sorry for confusing you.
I found the reason for this issue.

Originally I compiled pg 9.2.2 using gcc and everything worked fine.
Then I compiled it again using xlc and restarted the engine without unload=
ing and recreating the database.
It seems that are major differences even though it was the same software l=
evel.

Basically I prefer xlc as it runs better on AIX but there were some moneta=
ry reasons that made me try gcc.

Unfortunately this issue is so exotic that probably no one else can take a=
dvantage out of my experience.

Thank you for turning me into the right direction. It helped a lot.

Regards
Wilfried =20

-----Urspr=FCngliche Nachricht-----
Von: Tom Lane [mailto:tgl@sss.pgh.pa.us]=20
Gesendet: Freitag, 7. M=E4rz 2014 18:17
An: Weiss, Wilfried
Cc: pgsql-bugs@postgresql.org
Betreff: Re: [BUGS] BUG #9472: pg_dumpall fails with "unrecognized node ty=
pe: 650"

Wilfried.Weiss@nsg.com writes:
> pg_dumpall: query failed: ERROR:  unrecognized node type: 650
> pg_dumpall: query was: SELECT datname, coalesce(rolname, (select rolname=

> from pg_authid where oid=3D(select datdba from pg_database where
> datname=3D'template0'))), pg_encoding_to_char(d.encoding), datcollate,
> datctype, datfrozenxid, datistemplate, datacl, datconnlimit, (SELECT spc=
name
> FROM pg_tablespace t WHERE t.oid =3D d.dattablespace) AS dattablespace F=
ROM
> pg_database d LEFT JOIN pg_authid u ON (datdba =3D u.oid) WHERE datallow=
conn
> ORDER BY 1

That's very bizarre.  The implication of the error message is that
something examining a query parsetree found a Value node where it
wasn't expecting one.  Ordinarily I'd think a parser or planner bug,
but since this is a standard query in pg_dumpall, it's hard to see
how such a bug could have escaped notice.  Another possible theory
is system-catalog corruption, but I don't see how that would explain
this particular symptom.  I wonder if you've got a corrupted postgres
executable.

In any case, since you're running a version that's a year or two
obsolete, updating to 9.2.latest would be a good first step.

> What can I do to be able to unload the data again?

If upgrading doesn't help, I'd try telling pg_dumpall to connect
to a different database initially (see -d option).  If it is some
bizarre species of catalog corruption, it probably is affecting
the postgres database only, so this might dodge the issue.

Failing that, try pg_dump'ing individual databases.

=09=09=09regards, tom lane

http://nsg.com/disclaimer

Re: BUG #9472: pg_dumpall fails with "unrecognized node type: 650"

From
Noah Misch
Date:
On Mon, Mar 10, 2014 at 10:25:39AM +0100, Weiss, Wilfried wrote:
> I found the reason for this issue.
>
> Originally I compiled pg 9.2.2 using gcc and everything worked fine.
> Then I compiled it again using xlc and restarted the engine without unloading and recreating the database.
> It seems that are major differences even though it was the same software level.

PostgreSQL stores facts in its control file sufficient to identify all known
variations of the on-disk binary format.  Recompiling the same version with a
different compiler rarely requires a dump/reload, because compilers for the
same hardware often share a C language ABI.  When that's not so, PostgreSQL
endeavors to emit an message explaining the incompatibility and refuse to
start against the incompatible data files.  Failing to detect a
compiler-induced variation in the on-disk format would be a bug.

> Unfortunately this issue is so exotic that probably no one else can take advantage out of my experience.

If this a reproducible problem for a particular compiler, it's worth fixing.

The PostgreSQL buildfarm currently has no active members running AIX or xlc.
If you're in a position to have a machine perform automated PostgreSQL test
runs, that would greatly increase the chance that PostgreSQL will work out of
the box on your configuration.  More information:

http://buildfarm.postgresql.org/cgi-bin/register-form.pl

Thanks,
nm

--
Noah Misch
EnterpriseDB                                 http://www.enterprisedb.com