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.

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to