From a19e2634cf872ca28175a212335231fe8469a807 Mon Sep 17 00:00:00 2001 From: Mason Sharp Date: Sun, 15 Mar 2015 10:54:00 -0700 Subject: Fix a race condition where a queue has already been cleaned up. --- src/backend/pgxc/squeue/squeue.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/backend/pgxc/squeue/squeue.c b/src/backend/pgxc/squeue/squeue.c index 655cf32527..fbe20d4a23 100644 --- a/src/backend/pgxc/squeue/squeue.c +++ b/src/backend/pgxc/squeue/squeue.c @@ -948,6 +948,13 @@ SharedQueueReset(SharedQueue squeue, int consumerIdx) { SQueueSync *sqsync = squeue->sq_sync; + /* + * We may have already cleaned up, but then an abort signalled us to clean up. + * Avoid segmentation fault on abort + */ + if (!sqsync) + return; + if (consumerIdx == -1) { int i; -- cgit v1.2.3