thanks for the explanation... i found the mistake in a new pl/pgsql function i wrote before this error occured;-) Oliver Elphick wrote: > On Mon, 2005-08-29 at 16:50 +0100, Aldor wrote: > >>PostgreSQL 8.0.3: Any idea what this is? >> >>--- >>Warning: pg_query(): Query failed: ERROR: deadlock detected >>DETAIL: Process 8835 waits for ShareLock on transaction 193588236; >>blocked by process 8834. >>Process 8834 waits for ShareLock on transaction 193588228; blocked by >>process 8835 >>--- >> >>I have never seen such a log entry until now. > > > You have two transactions locking each other out. > > For example: > trans A: begin; > trans B: begin; > trans A: select * from table_a for update; -- locks table_a > trans B: select * from table_b for update; -- locks table_b > trans A: select * from table_b for update; -- blocked by trans B's lock > trans B: select * from table_a for update; -- blocked by trans A's lock > > Since the two transactions are blocking each other, the locks will never > be released by the transactions that are holding them. After a preset > interval (about 1 second by default) a deadlock is detected and reported > with this error message and one of the transactions is aborted. > > See manual section 12.3.3 in the 8.0 documentation. >