summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMason Sharp2015-03-15 17:54:00 +0000
committerPavan Deolasee2015-04-15 05:49:17 +0000
commita19e2634cf872ca28175a212335231fe8469a807 (patch)
tree6535a65107313a64e48fa8016fbfb32cd1b0ae4e
parent49e0e1cbc28140f30ee4ca6884f679b1020aedf7 (diff)
Fix a race condition where a queue has already been cleaned up.
-rw-r--r--src/backend/pgxc/squeue/squeue.c7
1 files changed, 7 insertions, 0 deletions
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;