If I read the 'select(2)' man page correctly, it appears this process is waiting indefinitely for a NULL file descriptor. That looks pretty stuck to me.
No, it's just sleeping. For 10 milliseconds or so.
Ah, thanks.
Should I kill this autovacuum process via pg_cancel_backend? Or is there a better way to "unstick" it?
Any ideas what may have caused it to get into this condition?
It looks like "read a page, sleep for 80 milliseconds, repeat".
I'd look at your settings for autovacuum_vacuum_cost_limit / autovacuum_vacuum_cost_delay, and maybe the contents of pg_autovacuum.
autovacuum_vacuum_cost_limit = -1
autovacuum_vacuum_cost_delay = 20ms
'select * from pg_autovacuum;' returns zero rows
I killed the one autovacuum process already that I thought was hung (via pg_cancel_backend).
I can see one other autovacuum process running. The other vacuum process was started manually.
Should I be concerned that pg_autovacuum is empty when I have an autovacuum process running?