Обсуждение: Logging function calls to figure out lo_close log entries?

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

Logging function calls to figure out lo_close log entries?

От
Ron Snyder
Дата:
Given the following log entries:

May  7 09:40:05 vault pgqv[13698]: [353] DEBUG:  ProcessUtility: begin;
May  7 09:40:05 vault pgqv[13698]: [354] DEBUG:  query: SELECT COMPRESSED,
DATA FROM ATTACHMENTS WHERE ID=460739 AND ATYPE='X'
May  7 09:40:05 vault pgqv[13698]: [355] DEBUG:  query: end
May  7 09:40:05 vault pgqv[13698]: [356] DEBUG:  ProcessUtility: end
May  7 09:40:08 vault pgqv[13698]: [357] DEBUG:  query: begin;
May  7 09:40:08 vault pgqv[13698]: [358] DEBUG:  ProcessUtility: begin;
May  7 09:40:08 vault pgqv[13698]: [359] DEBUG:  query: SELECT COMPRESSED,
DATA FROM ATTACHMENTS WHERE ID=460739 AND ATYPE='X'
May  7 09:40:08 vault pgqv[13698]: [360] DEBUG:  query: end
May  7 09:40:08 vault pgqv[13698]: [361] DEBUG:  ProcessUtility: end
May  7 09:40:08 vault pgqv[13698]: [362] ERROR:  lo_close: invalid large obj
descriptor (0)
May  7 09:40:08 vault pgqv[13698]: [363] ERROR:  lo_close: invalid large obj
descriptor (0)
May  7 09:40:08 vault pgqv[13698]: [364] ERROR:  lo_close: invalid large obj
descriptor (0)
May  7 09:40:08 vault pgqv[13698]: [365] ERROR:  lo_close: invalid large obj
descriptor (0)
May  7 09:40:08 vault pgqv[13698]: [366] ERROR:  lo_close: invalid large obj
descriptor (0)

I'm trying to help some programmers figure out what portion of their java
code might be causing this, but I don't know java to help them debug their
code-- I was wondering if there is anything on the server end that I could
change to help them track this down.  They're using the jdbc that was
current shortly after the 7.2 release and the 7.2 server (they're still in
acceptance testing for 7.2.1).

They do turn autocommit off, and they've discovered that they may not have
been turning it back on explicitly so are going to make a change to that
portion of code.  Are there any other easy mistakes that people have made
that may result in the above behavior?

-ron

Re: Logging function calls to figure out lo_close log entries?

От
Tom Lane
Дата:
Ron Snyder <snyder@roguewave.com> writes:
> May  7 09:40:08 vault pgqv[13698]: [362] ERROR:  lo_close: invalid large obj
> descriptor (0)

This generally suggests that someone is trying to use a LO handle beyond
the end of the transaction in which they did lo_open() --- or more to
the point, they forgot to wrap usage of the handle in a begin/commit
transaction block.  But I'm not enough of a JDBC user to be sure what
that translates to on the JDBC side.

> I was wondering if there is anything on the server end that I could
> change to help them track this down.

Turn up the debug level?  AFAICT your log includes only some of the
queries that are relevant.  Could their application be deliberately
suppressing query log entries, perhaps via PGOPTIONS?

            regards, tom lane