On 08/05/17 13:47, Petr Jelinek wrote: > On 08/05/17 01:17, Jeff Janes wrote: >> After dropping a subscription, it says it succeeded and that it dropped >> the slot on the publisher. >> >> But the publisher still has the slot, and a full-tilt process described >> by ps as >> >> postgres: wal sender process jjanes [local] idle in transaction >> >> Strace shows that this process is doing nothing but opening, reading, >> lseek, and closing from pg_wal, and calling sbrk. It never sends anything. >> >> This is not how it should work, correct? >> > > No, and I don't see how this happens though, we only report success if > the publisher side said that DROP_REPLICATION_SLOT succeeded. So far I > don't see anything in source that would explain this. I will need to > reproduce it first to see what's happening (wasn't able to do that yet, > but it might just need more time since you say it does no happen always). >
Hm I wonder are there any workers left on subscriber when this happens?
Yes. using ps, I get this:
postgres: bgworker: logical replication worker for subscription 16408 sync 16391
postgres: bgworker: logical replication worker for subscription 16408 sync 16388
They seem to be permanently blocked on a socket to read from the publisher.
On the publisher side, I think it is very slowly assembling a snapshot. It seems to be adding one xid at a time, and then re-sorting the entire list. Over and over.