Fix possible crash reading pg_stat_activity.
Robert Haas <rhaas@postgresql.org>
Fix possible crash reading pg_stat_activity. With the old code, a backend that read pg_stat_activity without ever having executed a parallel query might see a backend in the midst of executing one waiting on a DSA LWLock, resulting in a crash. The solution is for backends to register the tranche at startup time, not the first time a parallel query is executed. Report by Andreas Seltenreich. Patch by me, reviewed by Thomas Munro.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/execParallel.c | modified | +0 −1 |
| src/backend/storage/lmgr/lwlock.c | modified | +2 −0 |
| src/backend/utils/mmgr/dsa.c | modified | +7 −21 |
| src/include/utils/dsa.h | modified | +2 −3 |