> I have a old .partial file in the data directory to reproduce this.
I don't think the .partial file is in itself important. But I think this whole thing is a distraction.
Yes, sorry for the confusion.
I managed to reproduce it eventually, by messing with the slot and WAL at random, and my conclusion is that we shouldn't mess with this at all for this bugfix.
Agreed.
Instead I'm going to do what Ashutosh mentioned at the start, which is to verify both the restart_lsn and the invalidated_at, when deciding whether to ignore the slot.
Sounds good to me. Thanks!
It seems to me that there is a bigger mess here, considering that we use the effective_xmin in some places and the other xmin (the one that's saved to disk) in others. I have no patience for trying to disentangle that at this point, though.
-- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Having your biases confirmed independently is how scientific progress is made, and hence made our great society what it is today" (Mary Gardiner)