diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index a3bb2f1c0ef1174369d3f8552ac0d073fc32027e..9029477d68c6b1232d76ed3f55cf034ca8026405 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -1835,7 +1835,10 @@ get_object_address_publication_rel(List *objname, List *objargs,
 	/* Now look up the pg_publication tuple */
 	pub = GetPublicationByName(pubname, missing_ok);
 	if (!pub)
+	{
+		relation_close(relation, AccessShareLock);
 		return address;
+	}
 
 	/* Find the publication relation mapping in syscache. */
 	address.objectId =
@@ -1849,6 +1852,7 @@ get_object_address_publication_rel(List *objname, List *objargs,
 					(errcode(ERRCODE_UNDEFINED_OBJECT),
 					 errmsg("publication relation \"%s\" in publication \"%s\" does not exist",
 							RelationGetRelationName(relation), pubname)));
+		relation_close(relation, AccessShareLock);
 		return address;
 	}