On 2019-Oct-17, Michael Paquier wrote: > You may not have a backtrace, but I think that you are right: > WaitForLockers() gets called in index_drop() with progress reporting > enabled. index_drop() would also be taken by REINDEX CONCURRENTLY > through performMultipleDeletions() but we cannot know if it gets used > for REINDEX CONCURRENTLY or for DROP INDEX CONCURRENTLY as it goes > through the central deletion machinery, so we have to mark progress > reporting as true anyway. Maybe that's worth a comment in index_drop > when calling WaitForLockers() because it is not actually that obvious, > say like that:
Hmm, I wonder if it isn't the right solution to set 'progress' to false in that spot, instead. index_drop says it must only be called by the dependency machinery; are we depending on that to pass-through the need to update progress status? I'm going over that code now. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services