Skip to content

Commit 930a67a

Browse files
author
Valeriy Zainullin
committed
Check collector has started in pg_wait_sampling_reset_profile.
The worker might have not started yet or it may never start, because its registration was cancelled due to worker limit. This commit adds a check for NULL value of pgws_collector_hdr->latch. The previous usage in pg_wait_sampling.c has such a check, we should do the same here.
1 parent fafeda0 commit 930a67a

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

pg_wait_sampling.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,10 @@ receive_array(SHMRequest request, Size item_size, Size *count)
649649
pgws_collector_hdr->request = request;
650650
LockRelease(&collectorTag, ExclusiveLock, false);
651651

652+
/*
653+
* Check that the collector was started to avoid NULL
654+
* pointer dereference.
655+
*/
652656
if (!pgws_collector_hdr->latch)
653657
ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR),
654658
errmsg("pg_wait_sampling collector wasn't started")));
@@ -819,6 +823,14 @@ pg_wait_sampling_reset_profile(PG_FUNCTION_ARGS)
819823
pgws_collector_hdr->request = PROFILE_RESET;
820824
LockRelease(&collectorTag, ExclusiveLock, false);
821825

826+
/*
827+
* Check that the collector was started to avoid NULL
828+
* pointer dereference.
829+
*/
830+
if (!pgws_collector_hdr->latch)
831+
ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR),
832+
errmsg("pg_wait_sampling collector wasn't started")));
833+
822834
SetLatch(pgws_collector_hdr->latch);
823835

824836
LockRelease(&queueTag, ExclusiveLock, false);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy