Обсуждение: Diagnosing a hanging query

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

Diagnosing a hanging query

От
Kief Morris
Дата:
I'm having a problem with queries (inserts, actually) which
appear to be failing. The situation is:

- Application does a fair amount of work with the database,
  inserting several rows into a particular table, all
  apparently successful. This is with auto-commit on.
- A later update on that row in the table fails because it
  isn't in the database.
- Manually fiddling with the table using psql shows that
  some of the rows were inserted, but one hasn't.
- I can insert new rows, but can't insert a row containing
  the same index value as the failed row. If I try to,
  the process hangs.
- If I kill child postgres processes (leaving the main one
  alone), I can then insert the problematic row.

Looking at my logfile (redirected from stderr when postmaster
is started with -d 3 flag), the original insert statement
is recorded as:

StartTransactionCommand
query: INSERT INTO Attrib_Def ( prompt, name, category_id, type, deleted,
attribute_id ) VALUES ( 'Do you drink?'
, 'drinking', 67, 3, 0, 59 )
ProcessQuery
CommitTransactionCommand

This looks like a successfully inserted and committed operation
to me.

Any suggestions on what might be going on, and/or how to
figure out more?

I'm using Postgres 6.5.3 on Solaris 7, using the JDBC driver that
came with postgres, for Java 1.1

Thanks for any help.