Conversation
manaldush
commented
Feb 19, 2026
- pg_progress_bar should be locked with PG_QS_RCV_KEY, because it is using the same shmem as pg_query_state.
- change reqid logic, now it controls backend interruptions.
- now all inter-process communication in based on shmem queue reads/sends with appropriate timeouts.
- LWLocks used instead locks, it seems quite enough.
- Change deadlock test logic, error response are normal in such cases.
|
Commit message mentions several not interdependent changes. Commit diff shows it as well. My opinion, it should be several separate commits. They could be in one Pull Request, if they are somewhat related. But if they are completely independent, then better open pull request for each of them. |
pg_progress_bar should be locked with PG_QS_RCV_KEY, because it is using the same shmem as pg_query_state.
1. Fix reqid logic, now it controls backend interruptions. It is used to control that currently processed request has the same reqid as the one, polled from shmem queue. 2. Now all inter-process communication in based on shmem queue reads/sends with appropriate timeouts.
Change deadlock test logic, error response are normal in such cases.
1a7d49d to
767818b
Compare
I splitted commit on three separate commits. Every commit fix some problem related to lock management, but it seems it is extra work to create separate PR for them, because it all relates to lock management and some changes based on previous. |