diff --git a/src/test/subscription/t/003_constraints.pl b/src/test/subscription/t/003_constraints.pl
index 9f140b552b..94a3314378 100644
--- a/src/test/subscription/t/003_constraints.pl
+++ b/src/test/subscription/t/003_constraints.pl
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use PostgresNode;
 use TestLib;
-use Test::More tests => 6;
+use Test::More tests => 7;
 
 # Initialize publisher node
 my $node_publisher = get_new_node('publisher');
@@ -40,6 +40,20 @@ $node_subscriber->safe_psql('postgres',
 
 $node_publisher->wait_for_catchup('tap_sub');
 
+# Add replica trigger after event
+$node_subscriber->safe_psql(
+	'postgres', qq{
+CREATE FUNCTION after_event_fn() RETURNS TRIGGER AS \$\$
+BEGIN
+    RETURN NULL;
+END;
+\$\$ LANGUAGE plpgsql;
+CREATE TRIGGER after_event_trg
+    AFTER INSERT OR UPDATE OR DELETE ON tab_fk
+    FOR EACH ROW EXECUTE PROCEDURE after_event_fn();
+ALTER TABLE tab_fk ENABLE REPLICA TRIGGER after_event_trg;
+});
+
 $node_publisher->safe_psql('postgres',
 	"INSERT INTO tab_fk (bid) VALUES (1);");
 # "junk" value is meant to be large enough to force out-of-line storage
@@ -47,6 +61,15 @@ $node_publisher->safe_psql('postgres',
 	"INSERT INTO tab_fk_ref (id, bid, junk) VALUES (1, 1, repeat(pi()::text,20000));"
 );
 
+$node_publisher->safe_psql('postgres',
+	"INSERT INTO tab_fk (bid) VALUES (2);");
+
+$node_publisher->safe_psql('postgres',
+	"UPDATE tab_fk SET bid = 3 WHERE bid = 2;");
+
+$node_publisher->safe_psql('postgres',
+	"DELETE FROM tab_fk WHERE bid = 3;");
+
 $node_publisher->wait_for_catchup('tap_sub');
 
 # Check data on subscriber
@@ -58,6 +81,14 @@ $result = $node_subscriber->safe_psql('postgres',
 	"SELECT count(*), min(bid), max(bid) FROM tab_fk_ref;");
 is($result, qq(1|1|1), 'check replicated tab_fk_ref inserts on subscriber');
 
+# Check relcache reference leak
+my $log = TestLib::slurp_file($node_subscriber->logfile);
+unlike(
+	$log,
+	qr/WARNING:  relcache reference leak:/,
+	"check relcache reference leak");
+$log = undef;
+
 # Drop the fk on publisher
 $node_publisher->safe_psql('postgres', "DROP TABLE tab_fk CASCADE;");
 
