Обсуждение: Errors in one program and not in another... CODE is identical

Поиск
Список
Период
Сортировка

Errors in one program and not in another... CODE is identical

От
Trever Adams
Дата:
[pid  3270] write(2, "FATAL 1:  Socket command type P unknown\n\n", 41)
= 41
[pid  3270] write(4, "EFATAL 1:  Socket command type P unknown\n\n\0",
43) = 43

I get data back from the first select, but the above errors seem to
follow right after.

Second select fails, yet if I run both from psql right after one another
they succeed.  The content does change some but I can do it for any
possible combination.

This is Postgresql 6.4.2 on Linux 2.2.10 and RedHat 6.0 with most errata
updates (no glibc or postgresql ones missing).

Trever Adams

Re: [BUGS] Errors in one program and not in another... CODE is identical

От
Tom Lane
Дата:
Trever Adams <trever_Adams@bigfoot.com> writes:
> [pid  3270] write(2, "FATAL 1:  Socket command type P unknown\n\n", 41)
> = 41
> [pid  3270] write(4, "EFATAL 1:  Socket command type P unknown\n\n\0",
> 43) = 43

> I get data back from the first select, but the above errors seem to
> follow right after.

That looks like the client and backend are getting out of sync.  The
backend expects query commands from the client to be preceded by 'Q'
(there are also 'F' and 'X' command types, IIRC), and this complaint
says that the next character it read after processing a command wasn't
one of the expected command types.  Probably that 'P' is out of the
middle of some query string sent by the client.

How they got out of sync I can't tell from this much info.  Are you
using libpq, or some other interface?

            regards, tom lane