| From: | Craig Ruff <cruff(at)ucar(dot)edu> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | pgsql-bugs(at)postgresql(dot)org |
| Subject: | Re: Deadlock or other hang while vacuuming? |
| Date: | 2004-11-09 15:01:16 |
| Message-ID: | 20041109150116.GA8677@ucar.edu |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Mon, Nov 08, 2004 at 08:06:02PM -0500, Tom Lane wrote:
> I believe that if VACUUM wants to delete a tuple that is on the same
> physical page that a cursor is currently stopped on, the vacuum has to
> wait until the cursor moves off that page. So the vacuum could
> definitely be blocked by the cursor if the application is slow about
> advancing the cursor. This isn't a deadlock though, unless the
> application is also waiting for the vacuum to finish.
Well, that puts me back to one of my first theories, that I have an
effective deadlock due to the lack of a dedicated request processing
thread to handle the enumeration session requests. All the other
threads have blocked waiting to handle other types of requests.
I thought I had ruled it out from my reading that a read only cursor
wouldn't block a vacuum, but I guess I was wrong. Thanks, I'll implement
my work around.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-11-09 15:03:38 | Re: ALTER USER SET log_* not allowed... |
| Previous Message | Abaco informática s.a. | 2004-11-09 12:37:41 | Error in sql sintax |