Simon Riggs wrote: > On Mon, 2010-01-25 at 09:52 +0200, Heikki Linnakangas wrote: >> Would this simple scheme work: >> >> When the startup process has waited for a short while (ie >> deadlock_timeout), it sends the signal "please check if you're holding a >> pin on buffer X" to all backends. When a backend receives that signal, >> it checks if it is holding a pin on the given buffer *and* waiting on a >> lock. If it is, abort the transaction. Assuming that a backend can only >> block waiting on a lock held by the startup process, deadlock detection >> is as simple as that. > > No, it won't work. A deadlock could occur after the startup process has > already been waiting for longer than the deadlock timeout.
Retry every deadlock_timeout seconds? -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers