You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2019/06/14 07:21:06 UTC

[hawq] 01/02: HAWQ-1722. Fix core dump due to lock is not released before reporting errors when exceeding MaxAORelSegFileStatus

This is an automated email from the ASF dual-hosted git repository.

huor pushed a commit to branch taoz
in repository https://gitbox.apache.org/repos/asf/hawq.git

commit 33b5f136dbf984c7cdcbfe571e68b5dbc30f0b9c
Author: Ruilong Huo <hu...@163.com>
AuthorDate: Sun Jun 2 12:03:39 2019 +0800

    HAWQ-1722. Fix core dump due to lock is not released before reporting errors when exceeding MaxAORelSegFileStatus
---
 src/backend/access/appendonly/appendonlywriter.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/backend/access/appendonly/appendonlywriter.c b/src/backend/access/appendonly/appendonlywriter.c
index 63b6bc2..addd33e 100644
--- a/src/backend/access/appendonly/appendonlywriter.c
+++ b/src/backend/access/appendonly/appendonlywriter.c
@@ -423,6 +423,8 @@ AORelCreateHashEntry(Oid relid)
 			{
 				pfree(allfsinfoParquet);
 
+				LWLockRelease(AOSegFileLock);
+
 				ereport(ERROR, (errmsg("cannot open more than %d "
 				      "append-only table segment "
 				      "files cocurrently",
@@ -458,6 +460,8 @@ AORelCreateHashEntry(Oid relid)
 			{
 				pfree(allfsinfo);
 
+				LWLockRelease(AOSegFileLock);
+
 				ereport(ERROR, (errmsg("cannot open more than %d "
 				      "append-only table segment "
 				      "files cocurrently",
@@ -1147,6 +1151,7 @@ List *SetSegnoForWrite(List *existing_segnos, Oid relid, int segment_num,
 				if (new_status == NEXT_END_OF_LIST)
 				{
 					LWLockRelease(AOSegFileLock);
+
 					ereport(ERROR, (errmsg("cannot open more than %d append-only table segment files concurrently",
 									MaxAORelSegFileStatus)));
 				}