Craig Ruff <cruff(at)ucar(dot)edu> writes:
> I have an annoying problem with some kind of a hang or deadlock triggered
> sometimes when running a vacuum on a table with a pair of read only
> cursors enumerating different subsets of rows of the same table.
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.
regards, tom lane